views:

26

answers:

2

Adding shortcuts to JMenuBar submenu items in the Java Swing GUI designer is obvious, but how are shortcuts added to JMenuBar main menu items?

+2  A: 

You have two types of keyboard shortcuts: mnemonics and accelerators.

Mnemonics are usually triggered using Alt+KEY. That's the letter that's underlined in the menu item text (F for File, for example). Accelerators are application-wide shortcuts that are usually triggered using Ctrl+KEY.


To use mnemonics, you can use the setMnemonic() method:

menuItem.setMnemonic('F');

To use accelerators, you have to use the setAccelerator() method.

menuItem.setAccelerator(KeyStroke.getKeyStroke(
        java.awt.event.KeyEvent.VK_S, 
        java.awt.Event.CTRL_MASK));
Vivien Barousse
Thanks. `menuItem.setMnemonic('F');` did exactly what was needed.
JackN
Note that `setMnemonic` always uses the first occurrence of the letter (see `SwingUtilities#findDisplayedMnemonicIndex`). If you need to use a latter occurrence, use `AbstractButton#setDisplayedMnemonicIndex`, which corresponds to `Action.DISPLAYED_MNEMONIC_INDEX_KEY`. (BTW I recommend you set action properties then call `AbstractButton#setAction` instead of calling those JComponent methods directly.)
Geoffrey Zheng
+2  A: 

The Sun/Oracle site has a great Tutorial on using JMenu's When you are dealing with shortcut keys, Java uses mnemonic or Accelerator depending on the shortcut you want to use. you can set the mnemonic using the following

menuItem.setMnemonic(KeyEvent.VK_T);

and the accelerator via

 menuItem.setAccelerator(KeyStroke.getKeyStroke(
                        KeyEvent.VK_T, ActionEvent.ALT_MASK));

These are both examples taken from the link above

Sean