existe alguma propriedade para isso ?
jTextField aceitar apenas números, enter e backspace
4 Respostas
Até onde eu sei não existe uma propriedade para isso, mas há outra saída. Recomendo o link abaixo:
http://www.exampledepot.com/egs/javax.swing.text/LimitText.html
Crie um classe derivada de PlainDocument na qual o método insertString() aceite apenas números. Em seguida, passe uma instância dessa classe para o método JTextField.setDocument().
TxFieldInformaFilial.addKeyListener
(new KeyAdapter()
{
public void keyTyped(KeyEvent e)
{
char ch = e.getKeyChar();
try
{
Integer.parseInt(ch+"");
}
catch (NumberFormatException ex)
{
e.consume();
}
}
}
);
achei este exemplo mas o problema é que não aceita o enter e backspace
Não use o Keytyped!!!
Ele não funciona para o ctrl+c e ctrl+v. Pode até testar.
Recorte um texto e vc vai ver que é possível cola-lo no campo.
No lugar, escreva um document, que faça o que você quer, como esse aqui:
http://www.guj.com.br/posts/list/107425.java#579801
Agora, o que você espera que aconteça no Enter? Normalmente, um JTextField aciona o botão padrão no Enter. E isso o Java já faz (desde que vc defina um botão como padrão, lógico).
espero que com enter ele tenha a mesma funcionalidade do tab por isso estou comentando, pois quero que ele aceite 0…9 o enter o backspace e o tab se eu coloca somente números não consiguirei sair apertando outra tecla