by Dinesh Thakur

The MenuBar class encapsulates the platform's concept of a menu bar bound to a frame. In order to associate the menu bar with a Frame object, call the frame's setMenuBar method.

A menu bar handles keyboard shortcuts for menu items, passing them along to its child menus. Keyboard shortcuts provide the user with an alternative to the mouse for invoking a menu item and the action that is associated with it. Each menu item can maintain an instance of MenuShortcut.

Menu Interface

Method

Returns

Notes

MenuBar()

 

Adds these to Frames only

add(Menu m)

Menu

Add a menu object

countMenus()

Int>

How many menu objects currently?

getHelpMenu()

Menu>

Returns null if setHelpMenu() hasn’t been called

getMenu(int i)

Menu>

Get the menu object

remove(int index)

Void>

Remove a menu at the index

remove(MenuComponent m)

Void>

Remove a particular menu object

setHelpMenu(Menu m)

Void>

Designate a particular menu as the Help menu

Menu(String label)

 

If tearOff is true, some platforms allow tear-off menus

Menu(String label, boolean tearoff)

 

 

add(MenuItem mi)

MenuItem

Add a entry in a menu

add(String label)

Void

Implicitly create a menu item with this label

countItems()

Int>

How many items in this menu?

addSeparator()

Void>

Just a little white space

getItem(int i)

MenuItem>

Return the i th item

remove(int index)

Void>

Remove the item at the index

remove(MenuComponent item)

Void>

Remove a particular item

 

Menultem Interface

 

Method

Returns

Notes

MenuItem(String label)

 

A single totally plain menu item

disable()

Void

Disable and usually lowlight the menu item

enable() enable(boolean  cond)

Void

Enable and restore the visual state of the item

getLabel()

String

Get the text currently on the menu item

isEnabled()

boolean

Is this item currently enabled?

setLabel(String label)

Void

Put a new text label on the item 

 

MenuComponent Interface

 

Method

Returns

Notes

getFont()

Font

Not often used

getParent()

MenuContainer

May need to be used with a cast

setFont(Font f)

Void

Not often used

 

import java.awt.*;

import java.awt.event.*;
/* <APPLET CODE ="MenuBarClass.class" WIDTH=300 HEIGHT=200> </APPLET> */
public class MenuBarClass extends Frame
  {
          MenuBar mb=new MenuBar();
          Label label=new Label(" ");
          public static void main(String args[])
             {
                demomenu1 app=new demomenu1();
             } 
                public demomenu1()
                 {
                    super("Demonstration of Menus");
                     Panel panel=new Panel();
                    panel.add(label);
                    add("Center",panel);
                    addWindowListener(new WindowEventHandler());
                    menudetails();
                    setMenuBar(mb);
                    pack();
                    setSize(400,400);
                    show();
                 }
                     void menudetails()
                        { 
                            Menu fmenu=new Menu("File");
                            Menu emenu=new Menu("Edit");
                            Menu hmenu=new Menu("Help");
                            MenuItem newfitem=new MenuItem("New");
                            MenuItem exitfitem=new MenuItem("Exit");
                            fmenu.add(newfitem);
                            fmenu.addSeparator();
                            fmenu.add(exitfitem);
                            MenuItem cuteitem=new MenuItem("Cut");
                            MenuItem copyitem=new MenuItem("Copy");
                            MenuItem pasteitem=new MenuItem("Paste");
                            CheckboxMenuItem refreshitem=new CheckboxMenuItem("Refresh",true);
                            emenu.add(cuteitem);
                            emenu.add(copyitem);
                            emenu.add(pasteitem);
                            emenu.addSeparator();
                            emenu.add(refreshitem);
                            Menu sendmenu=new Menu("Send To");
                            MenuItem drivesitem=new MenuItem("Send to Drive");
                            MenuItem deskitem=new MenuItem("send to Desktop");
                            sendmenu.add(drivesitem);
                            sendmenu.add(deskitem);
                            emenu.add(sendmenu);
                            MenuItem abouthitem=new MenuItem("About");
                            hmenu.add(abouthitem);
                            mb.add(fmenu);
                            mb.add(emenu);
                            mb.add(hmenu);
                            Menuhandler mh=new Menuhandler();
                            newfitem.addActionListener(mh);
                            exitfitem.addActionListener(mh);
                            cuteitem.addActionListener(mh);
                            copyitem.addActionListener(mh);
                            pasteitem.addActionListener(mh);
                            refreshitem.addActionListener(mh);
                           drivesitem.addActionListener(mh);
                           deskitem.addActionListener(mh);
                           abouthitem.addActionListener(mh);
                       } 
                           class Menuhandler implements ActionListener,ItemListener
                               {
                                    public void actionPerformed(ActionEvent e)
                                        {
                                            String s=e.getActionCommand();
                                            label.setText(s);
                                             validate();
                                             if(s.equals("Exit")) System.exit(0);
                                        }
                                             public void itemStateChanged(ItemEvent e)
                                                 {
                                                     CheckboxMenuItem  
                                                         item=(CheckboxMenuItem)e.getItemSelectable();
                                                     String status;
                                                     if(item.getState())status="You checked:";
                                                     else status="you unchecked";
                                                     status+=item.getLabel();
                                                     label.setText(status);
                                                     validate();
                                                 } 
                                }
                                         class WindowEventHandler extends WindowAdapter
                                           {
                                                  public void windowClosing(WindowEvent e)
                                                      {
                                                              System.exit(0);
                                                       }
                                           }
   }

MenuBar class in Java Example