Mega Code Archive

 
Categories / Java / Swing JFC
 

Comprehensive Menu Demo

/* Definitive Guide to Swing for Java 2, Second Edition By John Zukowski      ISBN: 1-893115-78-X Publisher: APress */ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import javax.swing.ButtonGroup; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JCheckBoxMenuItem; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JRadioButtonMenuItem; import javax.swing.KeyStroke; public class MediumPopupSample {   static class MenuActionListener implements ActionListener {     public void actionPerformed(ActionEvent actionEvent) {       System.out.println("Selected: " + actionEvent.getActionCommand());     }   }   public static void main(String args[]) {     ActionListener menuListener = new MenuActionListener();     JFrame frame = new JFrame("MenuSample Example");     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);     JMenuBar menuBar = new JMenuBar();     // File Menu, F - Mnemonic     JMenu fileMenu = new JMenu("File");     fileMenu.setMnemonic(KeyEvent.VK_F);     menuBar.add(fileMenu);     // File->New, N - Mnemonic     JMenuItem newMenuItem = new JMenuItem("New", KeyEvent.VK_N);     newMenuItem.addActionListener(menuListener);     fileMenu.add(newMenuItem);     // File->Open, O - Mnemonic     JMenuItem openMenuItem = new JMenuItem("Open", KeyEvent.VK_O);     openMenuItem.addActionListener(menuListener);     fileMenu.add(openMenuItem);     // File->Close, C - Mnemonic     JMenuItem closeMenuItem = new JMenuItem("Close", KeyEvent.VK_C);     closeMenuItem.addActionListener(menuListener);     fileMenu.add(closeMenuItem);     // Separator     fileMenu.addSeparator();     // File->Save, S - Mnemonic     JMenuItem saveMenuItem = new JMenuItem("Save", KeyEvent.VK_S);     saveMenuItem.addActionListener(menuListener);     fileMenu.add(saveMenuItem);     // Separator     fileMenu.addSeparator();     // File->Exit, X - Mnemonic     JMenuItem exitMenuItem = new JMenuItem("Exit", KeyEvent.VK_X);     exitMenuItem.addActionListener(menuListener);     fileMenu.add(exitMenuItem);     // Edit Menu, E - Mnemonic     JMenu editMenu = new JMenu("Edit");     editMenu.setMnemonic(KeyEvent.VK_E);     menuBar.add(editMenu);     // Edit->Cut, T - Mnemonic, CTRL-X - Accelerator     JMenuItem cutMenuItem = new JMenuItem("Cut", KeyEvent.VK_T);     cutMenuItem.addActionListener(menuListener);     KeyStroke ctrlXKeyStroke = KeyStroke.getKeyStroke("control X");     cutMenuItem.setAccelerator(ctrlXKeyStroke);     editMenu.add(cutMenuItem);     // Edit->Copy, C - Mnemonic, CTRL-C - Accelerator     JMenuItem copyMenuItem = new JMenuItem("Copy", KeyEvent.VK_C);     copyMenuItem.addActionListener(menuListener);     KeyStroke ctrlCKeyStroke = KeyStroke.getKeyStroke("control C");     copyMenuItem.setAccelerator(ctrlCKeyStroke);     editMenu.add(copyMenuItem);     // Edit->Paste, P - Mnemonic, CTRL-V - Accelerator, Disabled     JMenuItem pasteMenuItem = new JMenuItem("Paste", KeyEvent.VK_P);     pasteMenuItem.addActionListener(menuListener);     KeyStroke ctrlVKeyStroke = KeyStroke.getKeyStroke("control V");     pasteMenuItem.setAccelerator(ctrlVKeyStroke);     pasteMenuItem.setEnabled(false);     editMenu.add(pasteMenuItem);     // Separator     editMenu.addSeparator();     // Edit->Find, F - Mnemonic, F3 - Accelerator     JMenuItem findMenuItem = new JMenuItem("Find", KeyEvent.VK_F);     findMenuItem.addActionListener(menuListener);     KeyStroke f3KeyStroke = KeyStroke.getKeyStroke("F3");     findMenuItem.setAccelerator(f3KeyStroke);     editMenu.add(findMenuItem);     // Edit->Options Submenu, O - Mnemonic, at.gif - Icon Image File     JMenu findOptionsMenu = new JMenu("Options");     Icon atIcon = new ImageIcon("at.gif");     findOptionsMenu.setIcon(atIcon);     findOptionsMenu.setMnemonic(KeyEvent.VK_O);     // ButtonGroup for radio buttons     ButtonGroup directionGroup = new ButtonGroup();     // Edit->Options->Forward, F - Mnemonic, in group     JRadioButtonMenuItem forwardMenuItem = new JRadioButtonMenuItem(         "Forward", true);     forwardMenuItem.addActionListener(menuListener);     forwardMenuItem.setMnemonic(KeyEvent.VK_F);     findOptionsMenu.add(forwardMenuItem);     directionGroup.add(forwardMenuItem);     // Edit->Options->Backward, B - Mnemonic, in group     JRadioButtonMenuItem backwardMenuItem = new JRadioButtonMenuItem(         "Backward");     backwardMenuItem.addActionListener(menuListener);     backwardMenuItem.setMnemonic(KeyEvent.VK_B);     findOptionsMenu.add(backwardMenuItem);     directionGroup.add(backwardMenuItem);     // Separator     findOptionsMenu.addSeparator();     // Edit->Options->Case Sensitive, C - Mnemonic     JCheckBoxMenuItem caseMenuItem = new JCheckBoxMenuItem("Case Sensitive");     caseMenuItem.addActionListener(menuListener);     caseMenuItem.setMnemonic(KeyEvent.VK_C);     findOptionsMenu.add(caseMenuItem);     editMenu.add(findOptionsMenu);     frame.setJMenuBar(menuBar);     frame.setSize(350, 250);     frame.setVisible(true);   } }