Como validar um TextField em uma aplicação Swing para que ele receba apenas numeros

4 respostas
arthurgon

Olá pessoal;

Alguém conhece algum método de validação de TextField que permita ao usuário digitar no campo apenas numeros?

Agradeço a ajuda.

Valeu.

4 Respostas

R

Dá uma pesquisada na classe:

javax.swing.JFormattedTextField

… disponível no Java SE desde a versão 1.4, e que permite a definição e máscaras de entrada de dados.

Tem uma lista de exemplos aqui:
http://www.java2s.com/Code/Java/Swing-JFC/AquickdemonstrationofJFormattedTextField.htm

netShot

Se quiser utilizar um JTextField faça:

class acceptNumbers extends PlainDocument {
			private static final long serialVersionUID = 1L;

			public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
	            if (str == null)
	                return;
	            try {
	                Integer.parseInt(str);
	                super.insertString(offs, str, a);
	            } 
	            	catch (NumberFormatException e) {
	            		// e.printStackTrace(); Caso queira mostrar algo se não for numero
	            }
	        }
	    }

Exemplo de uso:

JTextField tf = new JTextField(10);  
			tf.setDocument(new acceptNumbers());
P

procura pelo método setValidCharacters, do MaskFormatter.

arthurgon

Valeu gente. Deu certo.

Criado 8 de julho de 2008
Ultima resposta 8 de jul. de 2008
Respostas 4
Participantes 4