J'ai un swing gui avec une vitre à onglets dans le nord. Plusieurs événements clés sont ajoutés à la carte d'entrée:Java Swing: Ctrl + F1 ne fonctionne pas globalement, mais chaque autre combinaison de touches
InputMap paneInputMap = pane.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
paneInputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_E, KeyEvent.CTRL_MASK), "finish");
paneInputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_F1, KeyEvent.CTRL_MASK), "toggletoolbar");
Si le volet onglets ou un autre bouton dans une barre d'outils a le focus, Ctrl +F1 n'a pas de fonction. Si un autre composant est focalisé (par exemple JTree), Ctrl + F1 exécute l'action.
Le problème est que cela fonctionne partout si je change le Keycode par ex. VK_F2
. La clé F1 n'est utilisée nulle part ailleurs dans le programme.
Une idée?
Merci, André
Edit: Une recherche en texte intégral dans le code source java a donné la réponse: Le ToolTipManager
registeres la touche Ctrl + F1 pour afficher le texte de l'info-bulle si la combinaison de touches est pressé. Donc, si un bouton avec une info-bulle est focalisé, Ctrl + F1 est géré par le ToolTipManager
. Sinon, mon action est appelée.
LOL, la réponse est acceptée;) –