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:
[code]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);
}
}[/code]
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:
[code]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(); }
});[/code]
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…