Je travaille sur une application qui nécessite un JPanel pour réagir à la pression de la touche d'échappement. Je suis assez sûr que j'ai utilisé la bonne méthode pour enregistrer les raccourcis clavier à un composant, mais clairement, je suis toujours en train de faire quelque chose de mal. Ce code est responsable de l'enregistrement fin réagir à ladite combinaison de touches:JPanel ne réagit pas à KeyBindings
private void initializeKeyBindings() {
Action a = new AbstractAction() {
private static final long serialVersionUID = 1L;
@Override public void actionPerformed(ActionEvent e) {
menu.setVisible(true);
System.out.println("Herp");
}
};
this.getInputMap().put(KeyStroke.getKeyStroke("ESCAPE"), "ESCAPE");
this.getActionMap().put("ESCAPE", a);
}
Cette méthode est appelée dans le constructeur de mes JPanel après sont initialisés tous les autres composants. J'ai essayé de le déboguer et j'ai trouvé que l'action elle-même est enregistrée dans le JPanel mais le code dans la méthode actionPerformed() n'est jamais atteint. Je suspecte qu'il pourrait y avoir un problème avec ce JPanel n'ayant pas l'accent puisque j'utilise un CardLayout dans le JFrame sus-jacent. J'espère sincèrement que n'importe qui peut m'aider avec cela car il retarde très fortement mes progrès.
Works, merci beaucoup! – Exevan
vous êtes les bienvenus – mKorbel