E ae galera, tô com um probleminha!
Tenho uma aplicação que insere dados em uma tabela MySQL através de um JTextField ( txt ).
No txt, só são aceitos 14 números, não permito a entrada de espaços, virgulas, letras... enfim, qualquer outro caracter que não seja um número não será permitido!
public class SomenteNumeros extends PlainDocument {
private int iMaxLength;
public SomenteNumeros(int maxlen) {
super();
iMaxLength = maxlen;
}
@Override
public void insertString(int offset, String str, AttributeSet attr) throws BadLocationException {
if (str == null) {
return;
}
if (iMaxLength <= 0) // aceitara qualquer no. de caracteres
{
super.insertString(offset, str, attr);
return;
}
int ilen = (getLength() + str.length());
if (ilen <= iMaxLength) // se o comprimento final for menor...
{
for (int i = 0; i < str.length(); i++) {
//isDigit() verifica se é um numero, se não for ignora...
if (Character.isDigit(str.charAt(i))) {
//se for insere no documento
super.insertString(offset, Character.toString(str.charAt(i)), attr);
}
}
} else {
if (getLength() == iMaxLength) {
return; // nada a fazer
}
String newStr = str.substring(0, (iMaxLength - getLength()));
super.insertString(offset, newStr, attr);
}
//percorre a String inserida...
}
}
Já notei que isso ocorre quando eu faço essas restrições instanciando a classe SomenteNumeros... só não achei onde pode estar dando este erro!
Peço que me ajudem a solucionar este caso então... vlww!