jTextField aceitar apenas números, enter e backspace

4 respostas
G

existe alguma propriedade para isso ?

4 Respostas

R

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().

G
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

ViniGodoy

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).

G

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

Criado 30 de abril de 2009
Ultima resposta 30 de abr. de 2009
Respostas 4
Participantes 3