Je travaille sur l'implémentation de raccourcis clavier sur un panneau qui écoute si les touches fléchées sont enfoncées ou non.Les raccourcis clavier ne fonctionnent pas Java Swing
Si elles sont pressées, elles font une action. Mon code:
private void createKeyBindings(){
actionMap = this.getActionMap();
inputMap = this.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
this.getInputMap().put(KeyStroke.getKeyStroke("a"),
"pressedUpArrow");
this.getInputMap().put(KeyStroke.getKeyStroke("released UP"),
"releasedUpArrow");
this.getActionMap().put("pressedUpArrow",
new PressedUpArrowAction());
this.getActionMap().put("releasedUpArrow",
new ReleasedUpArrowAction());
}
Les actions fonctionnent (quand je les associez à un bouton et appuyez sur le bouton, il fait ce que l'action est censé faire).
Ces raccourcis clavier sont appelés pour mon panneau (qui est un onglet dans un onglet). J'ai essayé les deux avec la touche pressée vers le haut et juste un (pour s'assurer que ce n'est pas le problème). Je tape ces touches lorsque l'onglet en question est au point.
Un conseil?
s'il vous plaît où est sortie à l'interface graphique, pour une meilleure aide plus tôt un post [SSCCE] (http://sscce.org/) – mKorbel
en plus de la réponse par @Stephen - dans l'extrait ci-dessus vous enregistrez les frappes avec le mauvais inputMap: remplace this.getInputMap(). put (..) avec inputMap.put (...) – kleopatra
Merci, corrigé ça mais ça ne l'a pas résolu. Il n'y a aucune sortie vers l'interface graphique. PressedUpArrowAction momentanément imprime simplement un message d'erreur. L'action fonctionne, car lorsque je la lie à une clé (à l'aide de setAction), elle fonctionne lorsqu'elle est pressée. – Sven