Como formatar um Jtextfield para receber apenas inteiros

5 respostas
W

[b]Ola galera sou iniciante em java e gostaria de uma dica
como posso formatar um Jtextfield para receber do usuario apenas numeros inteiros??
obrigado. :slight_smile:

5 Respostas

V

bom tem varias maneiras de se fazer isso
Se vc ta usando netBeans vc pode usar o JFormatedField e configurar ele
pra receber apenas numeros, vc pode criar mascaras na mão o que resultaria no JFormatedField do netBeans,
vc também pode ir verificando se o que o usuario digitou é um numero usando a função isDigit um exemplo abaixo:

if ( !Character.isDigit( JTextField.getText().charAt( 0 ) ) ){
//faz o tratamento
}
T

Também é possível definir no Document do textField:

JTextField field = new JTextField();
field.setDocument(
    new PlainDocument()
    {
        public void insertString(int offset, String str, AttributeSet a)
        {
            ... // verifica se a String é ou não válida

            super.insertString(offset, str, a);
        }
    };

Para maiores informações sobre a classe Document: http://java.sun.com/javase/6/docs/api/javax/swing/text/Document.html

Também é possível adicionar um ouvinte de evento ao campo, mas não sei bem como fazer isso pois nunca utilizei dessa maneira... :roll:

F

Tenta isto aqui no evento FocusLost ou KeyReleasead:

Integer valor;
        try{
            valor = Integer.parseInt(jTextField.getText());            
        }catch(NumberFormatException ex){            
            JoptionPane.showMessage(null, "Só é permitido números inteiros!","Aviso");
        }

T+ 8)

A

No Event do keyPressed se não for número de um “e.consume()

G

Eu tenho um componente que fiz uma vez, vou colocar aqui. Ele aceita numeros inteiros e valores double.

Criado 1 de março de 2010
Ultima resposta 3 de mar. de 2010
Respostas 5
Participantes 6