outra dúvida. Eu tenho duas classes, uma que limita o número de caracter numa jtextfield e outra que faz com que o jtextfield aceite somente números, porém nessa segunda classe eu queria abrir uma exceção para ela aceitar os seguintes caracteres: o ponto ( . ) e o hífen ( - ). Alguém saberia implementar essa classe para que ela aceite essas duas exceções.
//código que limita os caracteres está ok
import javax.swing.text.*;
public class LimitaCaracter extends PlainDocument {
private int iMaxLength;
public LimitaCaracter(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...
super.insertString(offset, str, attr); // ...aceita str
}
}
//Essa é a classe que eu queria que aceitasse as exceções
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
public class CampoNumerico extends LimitaCaracter {
public CampoNumerico(int maxlen) {
super(maxlen);
}
@Override
public void insertString(int offset, String str, AttributeSet attr)
throws BadLocationException {
if (str == null)
return;
try {
Integer.parseInt(str);
} catch (Exception e) {
return;
}
super.insertString(offset, str, attr);
}
}