Ich habe einen Menüpunkt "rename", für den F2 als Beschleuniger eingestellt ist. In der Tat, wenn das Menü angezeigt wird, gibt es eine kleine "F2" -Anzeige neben "Umbenennen".Swing: Einstellen einer Funktionstaste (F2) als Beschleuniger
Leider funktioniert das nicht. Dieser Beschleuniger löst keine Antwort aus. Wenn ich den Beschleuniger zu STRG + F2 ändere - es funktioniert.
Es scheint, dass ich eine InpoutMpa/ActionMap verwenden sollte. Das Problem dabei ist, dass ich möchte, dass dies überall in der App funktioniert, also versuche ich, es mit dem JFrame der obersten Ebene zu verbinden. JFrame verfügt jedoch nicht über eine getInputMap() -Methode.
Verloren.
[Added]
ks = KeyStroke.getKeyStroke(KeyEvent.VK_F2, 0);
JMenuItem mi = new JMenuItem("Rename");
mi.setAccelerator(ks);
mi.addActionListener(action);
Bitte zeigen Sie uns die Codierung Sie den Beschleuniger setzen verwenden! –
Könnte es sein, dass Ihr OS/Window-Manager den Tastendruck "konsumiert", so dass er in Ihrer Swing-Anwendung tatsächlich nicht ankommt (z. B. weil F2 etwas Besonderem zugeordnet ist und Strg-F2 nicht)? – netzwerg