Right-click to demonstrate very simple popup menu
Menu Demo, written by Fred Swartz Java Programming Notes
Download source MenuDemo.java
MenuDemo.java
// File : gui/components/menus/MenuDemo.java // Purpose: GUI for menu demo. Subclasses JFrame. // Shows dropdown and popup menus, mnemonic and accelerator keys. // Author : Fred Swartz - Placed in public domain. // Date : 2000-04-26 (Rota), 2002-05-01 (Sicilia), 2006-10-04 (Pfalz) import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; ////////////////////////////////////////////////////////////////// MenuDemo class MenuDemo extends JFrame { //============================================================== fields private JTextArea m_editArea = new JTextArea(20, 50); //... Menuitems are instance variables when they are referenced // in a listener, eg, to en-/disabled them. private JMenuItem m_copyItem; private JMenuItem m_pasteItem; private JPopupMenu m_popup = new JPopupMenu(); //========================================================== constructor public MenuDemo() { // (1) Create menu items and set their mnemonic, accelerator, enabled. m_copyItem = new JMenuItem("Copy"); m_copyItem.setEnabled(false); m_copyItem.setAccelerator(KeyStroke.getKeyStroke("control C")); m_pasteItem = new JMenuItem("Paste"); m_pasteItem.setEnabled(false); m_pasteItem.setAccelerator(KeyStroke.getKeyStroke("control V")); JMenuItem openItem = new JMenuItem("Open..."); openItem.setMnemonic('O'); openItem.setAccelerator(KeyStroke.getKeyStroke("control O")); JMenuItem quitItem = new JMenuItem("Quit"); quitItem.setMnemonic('Q'); quitItem.setAccelerator(KeyStroke.getKeyStroke("control Q")); // (2) Build menubar, menus, and add menuitems. JMenuBar menubar = new JMenuBar(); // Create new menu bar JMenu fileMenu = new JMenu("File"); // Create new menu fileMenu.setMnemonic('F'); menubar.add(fileMenu); // Add menu to the menubar fileMenu.add(openItem); // Add menu item to the menu fileMenu.addSeparator(); // Add separator line to menu fileMenu.add(quitItem); JMenu editMenu = new JMenu("Edit"); fileMenu.setMnemonic('E'); menubar.add(editMenu); editMenu.add(m_copyItem); editMenu.add(m_pasteItem); // (3) Add listeners to menu items openItem.addActionListener(new OpenAction()); quitItem.addActionListener(new QuitAction()); //... Add the (unused) text area to the content pane. JPanel content = new JPanel(); content.setLayout(new BorderLayout()); content.add(m_editArea, BorderLayout.CENTER); //... Add menu items to popup menu, add popup menu to text area. m_popup.add(new JMenuItem("Testing")); m_editArea.setComponentPopupMenu(m_popup); //... Set the JFrame's content pane and menu bar. setContentPane(content); setJMenuBar(menubar); setTitle("Menu Demo"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); pack(); setLocationRelativeTo(null); // Center window. } ///////////////////////////////////////////////////////////// OpenAction class OpenAction implements ActionListener { public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(MenuDemo.this, "Can't Open."); } } ///////////////////////////////////////////////////////////// QuitAction class QuitAction implements ActionListener { public void actionPerformed(ActionEvent e) { System.exit(0); // Terminate the program. } } //================================================================= main public static void main(String[] args) { JFrame win = new MenuDemo(); win.setVisible(true); } }
Maintained by John Loomis, updated Sun Jul 05 12:14:10 2015