Olá pessoal, estou com uma dúvida, tenho o código abaixo dentro de um construtor de um JFrame.
Ao clicar nas teclas F11 ou F12, quero que a mesma execute os métodos. Porém ao clica nas teclas, os eventos sao executados várias vezes.
(Como se pegasse os segundos que a tecla esta pressionada e vai executando.)
Coloquei um System.out.println() para ver as execuções.
Se pressiono 'F11' no teclado, deveria sair "F11" e executar o método. Mas a saída é: "F11 F11 F11 F11 F11....." por ai vai.
Gostaria que o sistema travasse apenas para uma digitação. (F11 ou F12). Seria um KeyTyped no lugar de KeyPressed?
Como fazê-lo. Desde já agradeço.
Um forte abraço:
Código (dentro de um construtor de um JFrame.):
Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener() {
public void eventDispatched(AWTEvent event) {
KeyEvent ev = (KeyEvent) event;
if (ev.getKeyCode() == KeyEvent.VK_F11) {
System.out.println("F11");
previous();
}
if (ev.getKeyCode() == KeyEvent.VK_F12) {
System.out.println("F12");
next();
}
}
}, AWTEvent.KEY_EVENT_MASK);
mas conhecimento nunca é demais segue o link