Java tutorial
import java.awt.Event; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.KeyStroke; public class MenuAcceleratorKeyStroke extends JFrame { public MenuAcceleratorKeyStroke() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JMenuBar bar = new JMenuBar(); JMenu menu = new JMenu("File"); menu.setMnemonic('f'); bar.add(menu); JMenuItem exit = new JMenuItem("Exit"); exit.setMnemonic('x'); exit.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.out.println("Exit performed"); MenuAcceleratorKeyStroke.this.dispose(); System.exit(0); } }); menu.add(exit); menu = new JMenu("Edit"); menu.setMnemonic('e'); bar.add(menu); EditListener l = new EditListener(); JMenuItem mi; mi = menu.add(new JMenuItem("Cut", 't')); mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, Event.CTRL_MASK)); mi.addActionListener(l); mi = menu.add(new JMenuItem("Copy", 'c')); mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, Event.CTRL_MASK)); mi.addActionListener(l); mi = menu.add(new JMenuItem("Paste", 'p')); mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, Event.CTRL_MASK)); mi.addActionListener(l); setJMenuBar(bar); getContentPane().add(new JLabel("A placeholder")); pack(); setSize(300, 300); setVisible(true); } private class EditListener implements ActionListener { public void actionPerformed(ActionEvent e) { System.out.println(e.getActionCommand()); } } public static void main(String arg[]) { new MenuAcceleratorKeyStroke(); } }