I would like to assign a mnemonic to a JMenu
using resource bundles (or the ResourceMap
). So for example, the code without resource file would be...
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);
So how do I put the KeyEvent.VK_F in a resource file?
For a JMenuItem
I can do it with actions, but this is JMenu
.
Java's javax.swing.KeyStroke class bridges the gap:
JMenu fileMenu = new JMenu();
String mnemonic = // string from localization
fileMenu.setMnemonic(KeyStroke.getKeyStroke(mnemonic).getKeyCode());
Accelerators are not supported for JMenu
s, only for JMenuItem
s (which makes sense, since these invoke an action without using the menu at all).
Inside the resource file use the accelerator
add.Action.accelerator = control A
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With