FileDocCategorySizeDatePackage
MenuCascade.javaAPI DocExample2200Sun Mar 11 21:28:36 GMT 2001None

MenuCascade.java

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

/**
 * Demonstrate Cascading Menus
 * for students of Learning Tree Course 471/478
 *
 * @author Ian Darwin
 */
public class MenuCascade extends JFrame {
	JMenuBar mb;
	JMenu fm, om, hm;	// File, Options, Help
	JMenu opSubm;		// Options Sub-Menu
	JMenuItem mi;

	// Constructor
	MenuCascade(String s) {
		super("MenuCascade: " + s);

		Container cp = getContentPane();
		cp.setLayout(new FlowLayout());

		mb = new JMenuBar();
		setJMenuBar(mb);

		// The File Menu...
		fm = new JMenu("File");
			fm.add(mi = new JMenuItem("Open"));
			mi.addActionListener(defaultHandler);
			fm.add(mi = new JMenuItem("Close"));
			mi.addActionListener(defaultHandler);
			fm.addSeparator();
			fm.add(mi = new JMenuItem("Exit"));
			mi.addActionListener(defaultHandler);
			mi.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					System.exit(0);
				}
			});
		mb.add(fm);

		// The Options Menu...
		om = new JMenu("Options");
			opSubm = new JMenu("SubOptions");
			opSubm.add(mi = new JMenuItem("Alpha"));
			mi.addActionListener(defaultHandler);
			opSubm.add(mi = new JMenuItem("Gamma"));
			mi.addActionListener(defaultHandler);
			opSubm.add(mi = new JMenuItem("Delta"));
			mi.addActionListener(defaultHandler);
			om.add(opSubm);
		mb.add(om);

		// The Help Menu...
		hm = new JMenu("Help");
			hm.add(mi = new JMenuItem("About"));
			mi.addActionListener(defaultHandler);
			mi.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					JOptionPane.showMessageDialog(
					MenuCascade.this,
					"Version 0", "Version 0",
					JOptionPane.INFORMATION_MESSAGE);
				}
			});
			hm.add(mi = new JMenuItem("Topics"));
			mi.addActionListener(defaultHandler);
		mb.add(hm);

		// the main window
		cp.add(new MyCanvas("Menu Demo Window", 200, 150));
		pack();
	}

	ActionListener defaultHandler = new ActionListener() {
		public void actionPerformed(ActionEvent e) {
			System.out.println("You chose " + e.getActionCommand());
		}
	};

	public static void main(String[] arg) {
		MenuCascade mb = new MenuCascade("Testing 1 2 3...");
		mb.setVisible(true);
	}
}