The following applet shows many of the menu features you're likely to use.
JMenuBar
Represents the platform-dependent notion of a group of menus
attached to a window. JMenuBar
s cannot be
bound to JPanels
.
JPopupmenu
Represents a popup menu.
JSeparator
Implements a divider line to separate groups of menu itens.
JMenuItem
Each item in a menu is represented by a
JMenuItem
object.
JMenu
JMenu
enables you to create submenus
by adding one menu to another.
JCheckboxMenuItem
Is a menu item that implements a check box.
JRadioButtonMenuItem
Is a menu item that implements a radio button, in which only one item in a group can be selected.
To be able to contain a menu component, an object must adhere to
the MenuContainer
interface
(JFrame
, JMenu
, and
JMenuBar
classes do)
public class MenuWindow extends JFrame implements ActionListener, ItemListener { . . . public MenuWindow() { // Build the menu bar. mb = new JMenuBar(); setJMenuBar(mb); // Build first menu in the menu bar. m1 = new JMenu("Menu 1", true); mb.add(m1); mi1_1 = new JMenuItem("Menu Item 1_1"); m1.add(mi1_1); . . . // Build help menu. m5 = new JMenu("Menu 5"); mb.add(m5); //just setting the help menu doesn't work; must add it mb.setHelpMenu(m5); mi5_1 = new JMenuItem("Menu Item 5_1"); mi5_1.setMnemonic(KeyEvent.VK_5); m5.add(mi5_1); . . . // Build second menu in the menu bar. m2 = new JMenu("Menu 2"); mb.add(m2); mi2_1 = new JCheckboxMenuItem("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 \"" + ((JMenuItem)(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"); } }
Copyright © 1998-2009 Dilvan Moreira