JTextField e addKeyListener ? (Resolvido)

6 respostas
A

Galera o seguinte:
Não sei porque, mas o evento addKeyListener do meu aplicativo não esta funcionando, estou tentando usá-lo num JTextField chamado txtData que tratei para votar mascara nele, minha tela tem dois JTextField o que não tratei chamdo txtValor o evento addKeyListener funciona direitinho agora o JTextField chamado txtData simplesmente não reconhece que estão mexendo no JTextField.

Aqui vai meu o código,

Evento do JTextField que não funciona:

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(); } });
Este JTextField foi tratado para ter mascara e ficou assim:

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(); }

Obrigado galera.

6 Respostas

_Renatu

hm… ta dificil ver… parece q nao tem nada estranho…

voce tentou colocar alguma coisa no testaBtnGravar() pra ver se o codigo esta executando???

se nao, tente…

qualquer coisa posta o codigo desse metodo pra gente dar uma olhada…

A

O metodo testaBtnGravar() funciona sim, ele funciona quando mexo no outro JTextField… acho que tem a ver com o tratamento que eu fiz para votar mascara nele…

A

_Renatu:
hm… ta dificil ver… parece q nao tem nada estranho…

voce tentou colocar alguma coisa no testaBtnGravar() pra ver se o codigo esta executando???

se nao, tente…

qualquer coisa posta o codigo desse metodo pra gente dar uma olhada…

O metodo testaBtnGravar() funciona sim, ele funciona quando mexo no outro JTextField… acho que tem a ver com o tratamento que eu fiz para votar mascara nele…

aque vai o codigo do metodo

public void testaBtnGravar(){ if ((txtValor.getText().equals("")) | (txtData.getText().equals("__/__/____"))){ btnGravar.setEnabled(false); }else {btnGravar.setEnabled(true); }

AaroeiraA

public void testaBtnGravar(){ if ((txtValor.getText().equals("")) | (txtData.getText().equals("__/__/____"))){ btnGravar.setEnabled(false); }else {btnGravar.setEnabled(true); }

aliothbl,

Você não colocou a expressão “OU” errada não ? Cê volocou só uma “|”…

A

AaroeiraA:
public void testaBtnGravar(){ if ((txtValor.getText().equals("")) | (txtData.getText().equals("__/__/____"))){ btnGravar.setEnabled(false); }else {btnGravar.setEnabled(true); }

aliothbl,

Você não colocou a expressão “OU” errada não ? Cê volocou só uma “|”…

nao, se boto || e o primeira expresao é true ele nao evalua a segunda expresao, neste caso eu tenho que evaluar os dois JTextField pelo que usei |

A

aliothbl:
AaroeiraA:
public void testaBtnGravar(){ if ((txtValor.getText().equals("")) | (txtData.getText().equals("__/__/____"))){ btnGravar.setEnabled(false); }else {btnGravar.setEnabled(true); }

aliothbl,

Você não colocou a expressão “OU” errada não ? Cê volocou só uma “|”…

nao, se boto || e o primeira expresao é true ele nao evalua a segunda expresao, neste caso eu tenho que evaluar os dois JTextField pelo que usei |

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
Ultima resposta 12 de ago. de 2005
Respostas 6
Participantes 3