J'ai un élément de menu, "renommer", pour lequel F2 est défini comme un accélérateur. En effet, lorsque le menu est affiché, il y a une petite indication "F2" à côté de "renommer".Swing: Réglage d'une touche de fonction (F2) en tant qu'accélérateur
Malheureusement, cela ne fonctionne pas. Cet accélérateur ne déclenche aucune réponse. Quand je change l'accélérateur en CTRL + F2 - cela fonctionne.
Il semble que je devrais utiliser un InpoutMpa/ActionMap. Le problème avec cela est que je veux que cela fonctionne partout dans l'application, donc j'essaie de l'associer avec le JFrame de haut niveau. Mais, JFrame n'a pas de méthode getInputMap().
Perdu.
[Ajouté]
ks = KeyStroke.getKeyStroke(KeyEvent.VK_F2, 0);
JMenuItem mi = new JMenuItem("Rename");
mi.setAccelerator(ks);
mi.addActionListener(action);
S'il vous plaît nous montrer la vous utilisez le codage pour régler l'accélérateur! –
Est-ce que votre gestionnaire d'OS/fenêtre "consomme" la frappe de sorte qu'il n'arrive jamais à votre application Swing (par exemple parce que F2 est mappé à quelque chose de spécial, et Ctrl-F2 ne l'est pas)? – netzwerg