JTextField executar um metodo quando pressionada tecla

6 respostas
D

estou desenvolvendo um sisteminha em java, e nos meus campos JTextField gostaria que ao usuario digitar o valor no campo e pressionar
ENTER ou TAB o programa validasse o campo.
Alguém ja fez isso? Sabe como? Como Faria?
Valeuz :-o

6 Respostas

C

Meu amigo é so implementar o KeyListerner e adicionar o

JtextField.addKeyListener();

e no metodo KeyPress

public void keyPressed(KeyEvent e) {
              if(e.getSource() == JtextField){
		if (e.getKeyCode() == KeyEvent.VK_ENTER) { 
                      //Coloque o metodo de validação aqui
		}
             }
	}

Espero ter ajudado…

Qualquer duvida Post ae…

D

eu queria que funcionasse assim:

private void cdUsuarioKeyPressed(java.awt.event.KeyEvent evt) {                                     
        if (evt.getKeyCode() == KeyEvent.VK_ENTER || evt.getKeyCode() == KeyEvent.VK_TAB) {
            validaUsuario();
        }
    }

só que desse jeito só funciona o ENTER, o TAB simplesmente nao pega

D
  1. Programe o evento ActionPerfomed do TextField para capturar o ENTER.
  2. Programe o evento FocusLost do TextField para capturar o TAB.
  3. Apartir de ambos chame o ValidaUsuario().
D

se o usar o lostfocus a mensagem aparece várias vezes…

D

Resolvi da seguinte maneira:

  1. setei a propriedade:
    cdUsuario.setFocusTraversalKeysEnabled(false);

  2. no meu metodo actionPerformed do campo eu chamo o metodo
    que valida o Usuario.

  3. se o usuario for valido passa o foco para o proximo campo, senão da uma mensagem ( agora mostra uma vez só ) e seta o foco para o cdUsuario.

S

Pra isso voce pode utilizar o método focusLost() do objeto JTextField.

Abraços.

Criado 13 de abril de 2007
Ultima resposta 13 de abr. de 2007
Respostas 6
Participantes 4