Bom dia colegas !
Estou tentanto criar uma classe para garantir que o usuário só entre caracteres válidos em um JTextField.
Por exemplo, num campo CPF, entrar somente números.
Para configurar a quantidade de caracteres que podem ser digitados criei uma classe que extende PlainDocument e setei assim:
txtCpf.setDocument(new FixedLengthDocument(11));
Pensei que poderia usar a mesma classe não só para verificar se o tamanho máximo foi atingido, mas também se o caracter é válido.
No entanto não sei como verificar se o usuario digitou um numero, letra ou qualquer outro caracter.
Como iniciante que sou pensei em algo assim:
public void insertString(int offset, String str, AttributeSet attr)
throws BadLocationException {
if (str == null) return;
if (iMaxLength <= 0) {
if (str.equals("0") ||
str.equals("1") ||
str.equals("2") ||
str.equals("3") ||
str.equals("4") ||
str.equals("5") ||
str.equals("6") ||
str.equals("7") ||
str.equals("8") ||
str.equals("9") ) //é número
super.insertString(offset, str, attr);
return;
else {
etc, etc, etc
}
}
Mas não me pareceu a maneira mais elegante de fazer… (para não dizer mais inteligente)
Alguém pode me ajudar ?
Obrigado a todos.
Um abraço.