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);
}
}
}