Erro focusListener

3 respostas
Marck

Pessoal
Tenho esse metodo:
Quando o campo jCpf() ganha focus, passa p/ a classe ct no metodo cerificaNumeros o mesmo campo:

jtCpf().addFocusListener(new FocusAdapter(){
             
             
             public void focusGained(FocusEvent e){
                 //verificando se eh um numero.
             ct.verificaNumeros(jtCpf());
             }
         });	
         }
public class ClassTest{
	
		
		public void verificaNumeros(JTextField Obj){
		
		Obj.addKeyListener(new KeyAdapter(){
             // Evento para eliminar caracteres
           public void keyReleased(KeyEvent e){
                    
              if (!((e.getKeyChar() >= '0') && (e.getKeyChar() <= '9') || (e.getKeyChar() == '.')) ){
                      JOptionPane.showMessageDialog(null,"Usar Somente Números!");
             }
             }});		
		
	}
}

Cada tecla digitada que não seja numero, ele mostra a mensagem de erro, o problema e q a qtde de vezes mostrada vai acumulando.

Ex.: se errar uma vez mostra uma, erra 3 vezes, mostra 3, e assim vai acumulando.
Pq isso acontece?

Obrigado

3 Respostas

ronnypeterson

Olha responder a pergunta não vou, mas posso sugerir a vc a usar uma máscara p cpf, isso te poupa o trabalho de verificar se o usuário tá ou não digitando somente números.

No meu caso, crei um classe chamada Mascara e nela criei um método assim:

public static MaskFormatter criaMascaraCpf() 

	{

 		MaskFormatter formatter = null;

 		try

 		{ 

 			 formatter = new MaskFormatter("###.###.###-##");			  

 			 //formatter.setPlaceholderCharacter('.');

 		}

 		catch (ParseException parseEx) 

 		{

 			JOptionPane.showMessageDialog(null, "Erro de formatação do CPF.", "Erro", JOptionPane.ERROR_MESSAGE);

 		}

 		return formatter;

 	}

Então declaro o componente como:

protected JFormattedTextField maskCpf = null;

private JFormattedTextField getMaskCpf()

	{

		if (maskCpf== null) 

		{

			maskCpf = new JFormattedTextField(mascaras.criaMascaraCpf());					

			maskNumCnpj.setLocation(new Point(19, 38));

			maskNumCnpj.setSize(new Dimension(131, 20));			

		}

		return maskCpfj;

	}
herbertpimentel

Há tambem a maneira de verificar mascaras e validar entradas atraves de InputVerifyer dá uma olhada:

http://www.guj.com.br/posts/list/60805.java

[]s

Marck

Blza galera…valeu mesmo!

Eu até poderia usar uma mascara, mas tenho outros campos númericos que tambem queria fazer essa verificação dinamica.
É só para treinar mesmo.

Se alguem tiver uma ideia do que esteja acontecendo eu agradeço!

Criado 1 de junho de 2007
Ultima resposta 1 de jun. de 2007
Respostas 3
Participantes 3