3. AWT 1.1 Menus

3.1. Code Example

public class MenuWindow extends Frame implements ActionListener
                                                 ItemListener {
    . . .
    public MenuWindow() {
        
        //Build the menu bar.
        mb = new MenuBar();
        setMenuBar(mb);
 
        //Build first menu in the menu bar.
        m1 = new Menu("Menu 1", true);
        mb.add(m1);
        mi1_1 = new MenuItem("Menu Item 1_1");
        m1.add(mi1_1);
           . . .

        //Build help menu.
        m5 = new Menu("Menu 5");
        mb.add(m5); //just setting the help menu doesn't work; must add it
        mb.setHelpMenu(m5);
        mi5_1 = new MenuItem("Menu Item 5_1");
        mi5_1.setShortcut(new MenuShortcut(KeyEvent.VK_5));
        m5.add(mi5_1);
           . . .

        //Build second menu in the menu bar.
        m2 = new Menu("Menu 2");
        mb.add(m2);
        mi2_1 = new CheckboxMenuItem("Menu Item 2_1");
        m2.add(mi2_1);
 
        //Build third menu in the menu bar.
           . . .
        //Register as an ActionListener for all menu items.
        m1.addActionListener(this);
        m2.addActionListener(this);
        m3.addActionListener(this);
                . . .
        //Register as ItemListener on checkbox menu item.
        mi2_1.addItemListener(this);
    }
    . . .
    public void actionPerformed(ActionEvent e) {
        output.append("\"" + e.getActionCommand()
                      + "\" action detected in menu labeled \""
                      + ((MenuItem)(e.getSource())).getLabel() + "\".\n");
    }

    public void itemStateChanged(ItemEvent e) {
        output.append("Item state change detected on item \""
                      + e.getItem()
                      + "\" (state is " 
                      + ((e.getStateChange() == 
                            ItemEvent.SELECTED)? 
                            "selected)."
                          : "deselected).") + "\n");
    }
}