Evento em Botão

3 respostas
V

Boa tarde,

Tenho um botão com um ActionListener adicionado.
Gostaria de saber se tem algum método do JButton que faz com que se o mesmo estiver com o foco, e for teclado ‘Enter’, o mesmo realiza uma determinada função. Pois isso só é possivel quando é teclado a barra de espaço.

Obrigado!

3 Respostas

Rcogait
botao.addKeyListener(new KeyListener() {
            public void keyPressed(KeyEvent e) {
                if(e.getKeyCode() == e.VK_ENTER ){
                    //faça algo
                }
            }
            public void keyReleased(KeyEvent e) {
            }
            public void keyTyped(KeyEvent e) {
            }
        });

experimenta isso…
abs

V

Consegui… Obrigado!!!

Luiz_Rocha

Tem certeza que com o ENTER não funciona?

De qualquer maneira, existe uma interface chamada KeyListener, que serve para capturar eventos de teclas apertadas no teclado. Pesquise sobre ela e encontrará uma boa pista para a sua solução.

Você poderia fazer:

meuBotão.addKeyListener ( MinhaClasseQueImplementaKeyListener ) ;

Essa classe que implementa keyListener será obrigada a implementar alguns métodos - assim como as ActionListeners precisam implementar actionPerformed. A lista de métodos eu não decorei, mas tem um chamado

public void keyPressed(KeyEvent arg1) - e este é chamado quando uma tecla é apertada.

Use o método getSource() de arg1 para obter o objeto que estava focado quando a tecla foi apertada.
Use os métodos getKeyCode() ou getKeyChar() de arg1 para saber qual tecla foi pressionada. Não sei decorado o código nem o char que representam o ENTER, mas isso você pode descobrir.

Os outros métodos você pode deixar em branco, se quiser.

Caso isso não seja o que você queria, então eu já não sei. Use a criatividade. Além disso, qual é o problema de deixar na barra de espaço? Qualquer coisa adiciona um labelzinho avisando o usuário… :slight_smile:

Boa sorte.

Criado 24 de setembro de 2007
Ultima resposta 24 de set. de 2007
Respostas 3
Participantes 3