/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." );
}
}
);
}
}