By Alvin Alexander. Last updated: June 4, 2016
If you ever need to add a keystroke to a Java Swing application (or Scala Swing), this code may help. It shows how to add the [Command][M] keystroke on a Mac OS X system to a Swing application. It makes the keystroke available in a “Window” menu:
// (1) init
JMenuBar menuBar = new JMenuBar();
JMenu windowMenu = new JMenu();
JMenuItem minimizeWindowMenuItem = new JMenuItem();
// (2) in the constructor
windowMenu.setText("Window");
minimizeWindowMenuItem.setText("Minimize Window");
minimizeWindowMenuItem.addActionListener(new ActionListener()
{
public void actionPerformed(final ActionEvent e)
{
minimizeWindowMenuItem_actionPerformed(e);
}
});
minimizeWindowMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_M, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
// (3) some time later
windowMenu.add(minimizeWindowMenuItem);
menuBar.add(windowMenu);
this.setJMenuBar(menuBar);
// (4)
public void minimizeWindowMenuItem_actionPerformed(final ActionEvent e) {
mainFrame.setExtendedState(Frame.ICONIFIED);
}
I’m not going to add anything else here, but as mentioned, if you want to add a keystroke to a Java Swing application, I believe this is the correct approach, especially if you want the keystroke to appear as a menu item in a menu.

