2009-02-06 11 views
8

Ich möchte eine JMenu Mnemonik mit Ressourcen-Bundles zuweisen (oder die ResourceMap). So würde zum Beispiel der Code ohne Ressource-Datei ...Java-Menü Mnemonics in Ressourcendateien

JMenu fileMenu = new JMenu(); 
fileMenu.setText("File"); // this would be read from a resource file 
fileMenu.setMnemonic('F'); // but the docs say this is obsolete 
fileMenu.setMnemonic(KeyEvent.VK_F); 

Wie setze ich die KeyEvent.VK_F in einer Ressourcendatei?

Für eine JMenuItem kann ich es mit Aktionen tun, aber das ist JMenu.

Antwort

11

Java javax.swing.KeyStroke Klasse schließt die Lücke:

JMenu fileMenu = new JMenu(); 
String mnemonic = // string from localization 
fileMenu.setMnemonic(KeyStroke.getKeyStroke(mnemonic).getKeyCode());

Accelerators sind nicht für JMenu s unterstützt, nur für JMenuItem s (was sinnvoll ist, da diese eine Aktion aufrufen, ohne das Menü überhaupt zu benutzen).

0

Sie könnten es auf ähnliche Weise tun und "FileMenu" als (falsche) Aktion behandeln?

1

Innerhalb der Ressource-Datei verwenden, um den Beschleuniger

add.Action.accelerator = Kontrolle A

Verwandte Themen