Evento keyPressed() para de funcionar

1 resposta
T

Pessoal, estou com um probleminha relacionado a eventos em uma aplicação de interface gráfica. Existem 2 eventos, um keyPressed() para a JFrame, que funciona perfeitamente, e um actionPerformed() para um botão dentro do JPanel da JFrame, que também funciona perfeitamente. Então qual o problema? É que após o evento do botão ser acionado, o evento keyPressed() pára de funcionar. E para provar que é devido ao acionamento do actionPerformed(), eu retirei o evento e continuei a aplicação normalmente: o keyPressed() funcionava normalmente. Ora, então o problema seria dentro do evento actionPerformed(), ou não? Eu tirei o corpo dele, aliás foi por isso que eu não coloquei código aqui; não achei que fosse necessário, já que o evento está vazio, sem corpo nenhum. O problema persiste: após eu clicar no botão, não adianta pressionar qualquer tecla do teclado, que o keyPressed() não é disparado. Já tentei também adicionar novamente o KeyListener a JFrame, mas não adiantou. Eu podia jurar que os eventos de outros objetos não tinham relação nenhuma com os demais eventos e é por isso que eu não estou entendo nada do que está acontecendo. Se alguém puder me ajudar, eu agradeceria demais. Fico feliz para passar a ajudar as outras pessoas do fórum, uma vez que sou novo no GUJ. Abraços a todos. :smiley:

1 Resposta

T

Agradeço a todos que tiveram paciência de ler meu post. Consegui resolver o problema utilizando o procedimento que se segue:

InputMap imap = jPanel1.getInputMap(JPanel.WHEN_IN_FOCUSED_WINDOW);
ActionMap amap = jPanel1.getActionMap();

imap.put(KeyStroke.getKeyStroke("tecla"), "acao");
amap.put("acao", new AbstractAction() {

public void actionPerformed(ActionEvent e) {
                (...)
}
});
Criado 29 de março de 2011
Ultima resposta 3 de abr. de 2011
Respostas 1
Participantes 1