/home/wpollock1/public_html/Java/MenuDemo.java

// This program creates a simple Frame with a menu, with a
// couple of menu items in it.  A listener is added to the
// menu as well as to one of the items.  This shows which
// listener gets invoked.
//
// Written 12/2009 by Wayne Pollock, Tampa Florida USA

import java.awt.event.*;
import javax.swing.*;

public class MenuDemo extends JFrame
{
   public static void main ( String [] args )
   {
      JFrame f = new MenuDemo( "Menu Demo" );
      f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
      f.setSize( 550, 300 );
      f.setVisible( true );
   }

   public MenuDemo ( String title )
   {
      super( title );
      JMenu file = new JMenu( "File" );
      file.setMnemonic( 'F' );  // So ALT+F activates menu

      JMenu fruit = new JMenu( "Fruit" );
      fruit.setMnemonic( 'r' );

      JMenuItem apple = new JMenuItem( "Apple" );
      apple.setMnemonic( 'A' );
      fruit.add( apple );

      JMenuItem pear = new JMenuItem( "Pear" );
      pear.setMnemonic( 'P' );
      // For AWT, use Menuitem.setShortcut() method instead:
      pear.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_P, ActionEvent.CTRL_MASK) );
      fruit.add( pear );

      fruit.addSeparator();

      JMenuItem mango = new JMenuItem( "Mango" );
      mango.setMnemonic( 'M' );
      fruit.add( mango );

      JMenuItem quit = new JMenuItem( "Quit" );
      quit.setMnemonic( 'Q' );
      quit.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_Q, ActionEvent.CTRL_MASK) );
      file.add( quit );

      JMenuBar bar = new JMenuBar();
      setJMenuBar( bar );
      bar.add( file );
      bar.add( fruit );

      // Hook up event handling:

      quit.addActionListener( new ActionListener()
       {
         public void actionPerformed ( ActionEvent ae )
         {
            System.exit( 0 );
         }
       }
      );

      pear.addActionListener( new ActionListener()
       {
         public void actionPerformed ( ActionEvent ae )
         {
            JOptionPane.showMessageDialog( null, "You selected a pear." );
         }
       }
      );

      // This does nothing; listeners must be on the items:
      fruit.addActionListener( new ActionListener()
       {
         public void actionPerformed ( ActionEvent ae )
         {
            JOptionPane.showMessageDialog( null, "You selected a non-pear." );
         }
       }
      );
   }
}