java.awt
Class Menu

java.lang.Object
  |
  +--java.awt.MenuComponent
        |
        +--java.awt.MenuItem
              |
              +--java.awt.Menu
Direct Known Subclasses:
PopupMenu

public class Menu
extends MenuItem
implements MenuContainer

A Menu object is a pull-down menu component that is deployed from a menu bar.

A menu can optionally be a tear-off menu. A tear-off menu can be opened and dragged away from its parent menu bar or menu. It remains on the screen after the mouse button has been released. The mechanism for tearing off a menu is platform dependent, since the look and feel of the tear-off menu is determined by its peer. On platforms that do not support tear-off menus, the tear-off property is ignored.

Each item in a menu must belong to the MenuItem class. It can be an instance of MenuItem, a submenu (an instance of Menu), or a check box (an instance of CheckboxMenuItem).

Since:
JDK1.0
See Also:
MenuItem, CheckboxMenuItem, Serialized Form

Field Summary
private static String base
           
(package private)  boolean isHelpMenu
          This field will be set to true if the Menu in question is actually a help menu.
(package private)  Vector items
          A vector of the items that will be part of the Menu.
private  int menuSerializedDataVersion
          The menu serialized Data Version.
private static int nameCounter
           
private static long serialVersionUID
           
(package private)  boolean tearOff
          This field indicates whether the menu has the tear of property or not.
 
Fields inherited from class java.awt.MenuItem
actionCommand, actionListener, base, enabled, eventMask, label, menuItemSerializedDataVersion, nameCounter, serialVersionUID, shortcut
 
Fields inherited from class java.awt.MenuComponent
actionListenerK, appContext, font, itemListenerK, name, nameExplicitlySet, newEventsOnly, parent, peer, serialVersionUID
 
Constructor Summary
Menu()
          Constructs a new menu with an empty label.
Menu(String label)
          Constructs a new menu with the specified label.
Menu(String label, boolean tearOff)
          Constructs a new menu with the specified label, indicating whether the menu can be torn off.
 
Method Summary
(package private) static void ()
           
 MenuItem add(MenuItem mi)
          Adds the specified menu item to this menu.
 void add(String label)
          Adds an item with the specified label to this menu.
 void addNotify()
          Creates the menu's peer.
 void addSeparator()
          Adds a separator line, or a hypen, to the menu at the current position.
(package private)  String constructComponentName()
          Construct a name for this MenuComponent.
 int countItems()
          Deprecated. As of JDK version 1.1, replaced by getItemCount().
(package private)  int countItemsImpl()
           
(package private)  void deleteShortcut(MenuShortcut s)
           
 MenuItem getItem(int index)
          Gets the item located at the specified index of this menu.
 int getItemCount()
          Get the number of items in this menu.
(package private)  MenuItem getItemImpl(int index)
           
(package private)  MenuItem getShortcutMenuItem(MenuShortcut s)
           
(package private)  boolean handleShortcut(KeyEvent e)
           
private static void initIDs()
          Initialize JNI field and method IDs
 void insert(MenuItem menuitem, int index)
          Inserts a menu item into this menu at the specified position.
 void insert(String label, int index)
          Inserts a menu item with the specified label into this menu at the specified position.
 void insertSeparator(int index)
          Inserts a separator at the specified position.
 boolean isTearOff()
          Indicates whether this menu is a tear-off menu.
 String paramString()
          Gets the parameter string representing the state of this menu.
private  void readObject(ObjectInputStream s)
          Read the ObjectInputStream and if it isnt null add a listener to receive item events fired by the Menu.
 void remove(int index)
          Removes the menu item at the specified index from this menu.
 void remove(MenuComponent item)
          Removes the specified menu item from this menu.
 void removeAll()
          Removes all items from this menu.
 void removeNotify()
          Removes the menu's peer.
(package private)  Enumeration shortcuts()
           
private  void writeObject(ObjectOutputStream s)
          Writes default serializable fields to stream.
 
Methods inherited from class java.awt.MenuItem
addActionListener, deleteShortcut, disable, disableEvents, enable, enable, enableEvents, eventEnabled, getActionCommand, getLabel, getShortcut, isEnabled, processActionEvent, processEvent, removeActionListener, setActionCommand, setEnabled, setLabel, setShortcut
 
Methods inherited from class java.awt.MenuComponent
dispatchEvent, dispatchEventImpl, getFont_NoClientCode, getFont, getName, getParent_NoClientCode, getParent, getPeer, getTreeLock, postEvent, setFont, setName, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

items

Vector items
A vector of the items that will be part of the Menu.
See Also:
countItems()

tearOff

boolean tearOff
This field indicates whether the menu has the tear of property or not. It will be set to true if the menu has the tear off property and it will be set to false> if it does not. A torn off menu can be deleted by a user when it is no longer needed.
See Also:
isTearOff()

isHelpMenu

boolean isHelpMenu
This field will be set to true if the Menu in question is actually a help menu. Otherwise it will be set to false.

base

private static final String base

nameCounter

private static int nameCounter

serialVersionUID

private static final long serialVersionUID

menuSerializedDataVersion

private int menuSerializedDataVersion
The menu serialized Data Version.
Constructor Detail

Menu

public Menu()
Constructs a new menu with an empty label. This menu is not a tear-off menu.
Since:
JDK1.1

Menu

public Menu(String label)
Constructs a new menu with the specified label. This menu is not a tear-off menu.
Parameters:
label - the menu's label in the menu bar, or in another menu of which this menu is a submenu.

Menu

public Menu(String label,
            boolean tearOff)
Constructs a new menu with the specified label, indicating whether the menu can be torn off.

Tear-off functionality may not be supported by all implementations of AWT. If a particular implementation doesn't support tear-off menus, this value is silently ignored.

Parameters:
label - the menu's label in the menu bar, or in another menu of which this menu is a submenu.
tearOff - if true, the menu is a tear-off menu.
Since:
JDK1.0.
Method Detail

static void ()

constructComponentName

String constructComponentName()
Construct a name for this MenuComponent. Called by getName() when the name is null.
Overrides:
constructComponentName in class MenuItem

addNotify

public void addNotify()
Creates the menu's peer. The peer allows us to modify the appearance of the menu without changing its functionality.
Overrides:
addNotify in class MenuItem

removeNotify

public void removeNotify()
Removes the menu's peer. The peer allows us to modify the appearance of the menu without changing its functionality.
Overrides:
removeNotify in class MenuComponent

isTearOff

public boolean isTearOff()
Indicates whether this menu is a tear-off menu.

Tear-off functionality may not be supported by all implementations of AWT. If a particular implementation doesn't support tear-off menus, this value is silently ignored.

Returns:
true if this is a tear-off menu; false otherwise.

getItemCount

public int getItemCount()
Get the number of items in this menu.
Returns:
the number of items in this menu.
Since:
JDK1.1

countItems

public int countItems()
Deprecated. As of JDK version 1.1, replaced by getItemCount().

countItemsImpl

final int countItemsImpl()

getItem

public MenuItem getItem(int index)
Gets the item located at the specified index of this menu.
Parameters:
index - the position of the item to be returned.
Returns:
the item located at the specified index.

getItemImpl

final MenuItem getItemImpl(int index)

add

public MenuItem add(MenuItem mi)
Adds the specified menu item to this menu. If the menu item has been part of another menu, remove it from that menu.
Parameters:
mi - the menu item to be added.
Returns:
the menu item added.
See Also:
insert(java.lang.String, int), insert(java.awt.MenuItem, int)

add

public void add(String label)
Adds an item with the specified label to this menu.
Parameters:
label - the text on the item.
See Also:
insert(java.lang.String, int), insert(java.awt.MenuItem, int)

insert

public void insert(MenuItem menuitem,
                   int index)
Inserts a menu item into this menu at the specified position.
Parameters:
menuitem - the menu item to be inserted.
index - the position at which the menu item should be inserted.
Throws:
IllegalArgumentException - if the value of index is less than zero.
Since:
JDK1.1
See Also:
add(java.lang.String), add(java.awt.MenuItem)

insert

public void insert(String label,
                   int index)
Inserts a menu item with the specified label into this menu at the specified position.
Parameters:
label - the text on the item.
index - the position at which the menu item should be inserted.
Since:
JDK1.1
See Also:
add(java.lang.String), add(java.awt.MenuItem)

addSeparator

public void addSeparator()
Adds a separator line, or a hypen, to the menu at the current position.
See Also:
insertSeparator(int)

insertSeparator

public void insertSeparator(int index)
Inserts a separator at the specified position.
Parameters:
index - the position at which the menu separator should be inserted.
Throws:
IllegalArgumentException - if the value of index is less than 0.
Since:
JDK1.1
See Also:
addSeparator()

remove

public void remove(int index)
Removes the menu item at the specified index from this menu.
Parameters:
index - the position of the item to be removed.

remove

public void remove(MenuComponent item)
Removes the specified menu item from this menu.
Specified by:
remove in interface MenuContainer
Parameters:
item - the item to be removed from the menu

removeAll

public void removeAll()
Removes all items from this menu.
Since:
JDK1.0.

handleShortcut

boolean handleShortcut(KeyEvent e)
Overrides:
handleShortcut in class MenuItem

getShortcutMenuItem

MenuItem getShortcutMenuItem(MenuShortcut s)
Overrides:
getShortcutMenuItem in class MenuItem

shortcuts

Enumeration shortcuts()

deleteShortcut

void deleteShortcut(MenuShortcut s)
Overrides:
deleteShortcut in class MenuItem

writeObject

private void writeObject(ObjectOutputStream s)
                  throws ClassNotFoundException,
                         IOException
Writes default serializable fields to stream. Writes a list of serializable ItemListener(s) as optional data. The non-serializable ItemListner(s) are detected and no attempt is made to serialize them.
Overrides:
writeObject in class MenuItem
See Also:
AWTEventMulticaster.save(ObjectOutputStream, String, EventListener), java.awt.Component.itemListenerK

readObject

private void readObject(ObjectInputStream s)
                 throws ClassNotFoundException,
                        IOException
Read the ObjectInputStream and if it isnt null add a listener to receive item events fired by the Menu. Unrecognised keys or values will be Ignored.
Overrides:
readObject in class MenuItem
See Also:
removeActionListener(), addActionListener()

paramString

public String paramString()
Gets the parameter string representing the state of this menu. This string is useful for debugging.
Overrides:
paramString in class MenuItem
Since:
JDK1.0nu.

initIDs

private static void initIDs()
Initialize JNI field and method IDs