MenuAcceleratorKeyStroke.java Source code

Java tutorial

Introduction

Here is the source code for MenuAcceleratorKeyStroke.java

Source

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();
    }
}