Pessoal, tenho um addKeyListener da seguinte forma:
Meu botão:
Segue meu KeyListener :
[code]/*
- To change this template, choose Tools | Templates
- and open the template in the editor.
*/
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JComponent;
/**
*
-
@author Rodrigo
*/
public class AvancarListener implements KeyListener {
JComponent next = null;
JComponent previous = null;
public AvancarListener(JComponent previous, JComponent next ) {
this.previous = previous;
this.next = next;
}
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == 10) {
next.requestFocus();
}
if (e.getKeyCode() == 27) {
previous.requestFocus();
}
}
}
[/code]
alguem me ajuda por favor?
Por que raios, quando eu aperto a “barra de espaco (e.getKeyCode() == 32)” ele executa o botao?
ja tentei ateh por um IF
if (e.getKeyCode() == 32) {
}
O padrão do JButton é ser acionado pela barra de espaço quando ele estiver com o foco.
Há algum problema com esse comportamento? Se precisar mesmo tirar, pode associar uma action que não faz nada pelo InputMap.
entao, gostaria de saber qual a possibilidade de quando a pessoa apertar “enter” se ele estiver com o foco ele acionar… isso é possivel?
Sim. Dá pra setar uma propriedade pelo UIManager pra fazer com que o botão com o foco se torne o default button da janela (o default button de uma janela é aquele que é acionado quando a tecla enter for pressionada).
Executando esta linha antes de instanciar a janela já faz automaticamente com que o botão com foco seja o default button.
Aqui tem uma explicação um pouco mais detalhada com um exemplo de código: http://devsv.wordpress.com/2012/08/20/acionando-botoes-de-um-jframe-com-a-tecla-enter/
Então… meu problema é
meu botao está sendo executado com a tecla enter sem receber nenhuma implementacao… eu sei que isso nao é mágica, mas, qual o “milagre” disso? o que eu fiz que nao me dei conta?
Obrigado por qualquer ajuda!
EDIT: Bom acabei de perceber que isso está ocorrendo por causa do look and feel, agora alguem pode me ajudar em tirar a funcao do enter nos botoes?, tentei fazer o dica acima, mas não funcionou…
Pessoa, segue solução…
jButton1.getInputMap().put(KeyStroke.getKeyStroke("ENTER"),
"none");