// File:  JMenusDemo\JMenusDemo.java

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class JMenusDemo extends JFrame {

    public JMenusDemo() {
        super("JMenusDemo");
        setJMenuBar(mBar);
        initFileMenu();
        initHelpMenu();
    }

/*      newItem = new MenuItem("New");
        newItem.addActionListener(new NewHandler());
        fileMenu.add(newItem);
        // Display Ctrl-N for New command
        ms = new MenuShortcut(KeyEvent.VK_N);
        newItem.setShortcut(ms); */

    private void initFileMenu() {
        fileMenu = new JMenu("File");
        mBar.add(fileMenu);

        openItem = new JMenuItem("Open", KeyEvent.VK_O);
        openItem.addActionListener(new OpenListener());
        openItem.setEnabled(true);
        fileMenu.add(openItem);

        saveItem = new JMenuItem("Save");
        saveItem.setEnabled(false);
        fileMenu.add(saveItem);

        fileMenu.addSeparator();

        quitItem = new JMenuItem("Quit");
        quitItem.addActionListener(new QuitListener());
        quitItem.setEnabled(true);
        fileMenu.add(quitItem);
    }

    private class OpenListener implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            JOptionPane.showMessageDialog(f, "Open is not yet implemented");
        }
    }

    private class QuitListener implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            System.exit(0);
        }
    }    

    private void initHelpMenu() {
        helpMenu = new JMenu("Help");
        mBar.add(helpMenu);

        helpItem = new JMenuItem("Help");
        helpItem.addActionListener(new HelpListener());
        helpItem.setEnabled(true);
        helpMenu.add(helpItem);
    }

    private class HelpListener implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            JOptionPane.showMessageDialog(f, "\"There is no help for the wicked!\"",
                                          "Sorry...", JOptionPane.WARNING_MESSAGE);
        }
    }

    public static void main(String[] args) {
        f = new JMenusDemo();
        f.setSize(WIDTH, HEIGHT);
        f.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
        f.setVisible(true);
    }

    private static final int WIDTH  = 400;
    private static final int HEIGHT = 275;
    private static JMenusDemo f;
    private JMenuBar mBar = new JMenuBar();
    private JMenu fileMenu, helpMenu;
    private JMenuItem openItem, saveItem, quitItem, helpItem;
}

