SubMenu.java

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


/**
An example of a (non-functional) submenu.
*/
class SubMenu extends JFrame
{
    // Just plop the main() method right in the frame class...
    public static void main(String argv[])
    {
        SubMenu f = new SubMenu();
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.show();
    }


    public SubMenu()
    {
        Toolkit kit = Toolkit.getDefaultToolkit();
        Dimension ss = kit.getScreenSize();
        setSize(ss.width/3,ss.height/6);
        setLocation(ss.width/4,ss.height/4);
        setTitle("CISC370-011 -- simple menu demo");

        ButtonPanel sp = new ButtonPanel();
        Container contentPane = getContentPane();
        contentPane.add(sp);

        JMenuBar mbar = new JMenuBar();
        setJMenuBar(mbar);
        JMenu fileMenu = new JMenu("File");
        mbar.add(fileMenu);
        JMenuItem exitItem = new JMenuItem("Exit");
        fileMenu.add(exitItem);
        exitItem.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e)
                    { System.exit(0); }
            });

        JMenu optionsMenu = new JMenu("Options");
        JMenuItem redOption = new JMenuItem("Red");
        JMenuItem yellowOption = new JMenuItem("Yellow");
        JMenuItem greenOption = new JMenuItem("Green");
        optionsMenu.add(redOption);
        optionsMenu.add(yellowOption);
        optionsMenu.add(greenOption);
        fileMenu.addSeparator();
        fileMenu.add(optionsMenu);
    }
}


class ButtonPanel extends JPanel
{
    public ButtonPanel() {
        mkButton("Red",Color.RED);
        mkButton("Yellow",Color.YELLOW);
        mkButton("Green",Color.GREEN);    
    }


    void mkButton(String name,final Color bg) {
        JButton jb = new JButton(name);
        add(jb);
        jb.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e)
                { setBackground(bg); }
            });
    }
}