addKeyListener e JTextField (2) (Resolvido)

0 respostas
A

Deixa ver se assim me explico melhor:
Do jeito que esta o código a seguir funciona BLZ, a cada vez que mexo em algum dos dós campos o método testaBtnGravar() é chamado:

getContentPane().add(txtData);
txtData.setBounds(60, 110, 70, 20);
                
         txtData.addKeyListener(new java.awt.event.KeyListener() {            
   		 public void keyPressed(KeyEvent e) {	
   				testaBtnGravar();	   
   	     }
   		 public void keyReleased(KeyEvent e){
   			    testaBtnGravar();
   	     }
   		 public void keyTyped(KeyEvent e)   {		
   				testaBtnGravar();	}
         });

getContentPane().add(txtValor);
        txtValor.setBounds(230, 110, 70, 20);
        
        txtValor.addKeyListener(new java.awt.event.KeyListener() {
     
		public void keyPressed(KeyEvent e) {	
				testaBtnGravar();	   
	    }
		public void keyReleased(KeyEvent e){
			    testaBtnGravar();
	    }
	    public void keyTyped(KeyEvent e)   {		
				testaBtnGravar();	}
        });

public void testaBtnGravar(){
    	 if ((txtValor.getText().equals("")) | (txtData.getText().equals(""))){
			btnGravar.setEnabled(false);
		}else {btnGravar.setEnabled(true);
	}
    }
Agora quando insero uma mascara no txtData os métodos da KeyListener instanciada no txtData não funcionam e como se eu não estivesse mexendo no txtData:
MaskFormatter mskData; 
        try { 
            mskData = new MaskFormatter("##/##/####"); 
            mskData.setPlaceholderCharacter('_'); 
            txtData = new JFormattedTextField(mskData); 
            txtData.setBounds(60, 110, 70, 20); 
            getContentPane().add(txtData, null); 
            
        }catch (ParseException e) { 
            e.printStackTrace(); 
        }

getContentPane().add(txtValor);
        txtValor.setBounds(230, 110, 70, 20);
        
        txtValor.addKeyListener(new java.awt.event.KeyListener() {
     
		public void keyPressed(KeyEvent e) {	
				testaBtnGravar();	   
	    }
		public void keyReleased(KeyEvent e){
			    testaBtnGravar();
	    }
	    public void keyTyped(KeyEvent e)   {		
				testaBtnGravar();	}
        });

Desculpa ae galera, ainda nao saco muito de Java, so basico mesmo.

O erro de besta....
eu tinha declarado o txtData assim...

txtData = new javax.swing.JTextField();

quando tinha que ser assim

txtData = new javax.swing.JFormattedTextField();

Valeu galera....

Criado 12 de agosto de 2005
Respostas 0
Participantes 1