Module java.desktop
Package java.awt

Class Menu

  • All Implemented Interfaces:
    MenuContainer, Serializable, Accessible
    Direct Known Subclasses:
    PopupMenu

    public class Menu
    extends MenuItem
    implements MenuContainer, Accessible
    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:
    1.0
    See Also:
    MenuItem, CheckboxMenuItem, Serialized Form
    • Constructor Detail

      • Menu

        public Menu​(String label)
             throws HeadlessException
        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.
        Throws:
        HeadlessException - if GraphicsEnvironment.isHeadless() returns true.
        See Also:
        GraphicsEnvironment.isHeadless()
      • Menu

        public Menu​(String label,
                    boolean tearOff)
             throws HeadlessException
        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.
        Throws:
        HeadlessException - if GraphicsEnvironment.isHeadless() returns true.
        See Also:
        GraphicsEnvironment.isHeadless()
    • Method Detail

      • 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:
        1.1
      • countItems

        @Deprecated
        public int countItems()
        Deprecated.
        As of JDK version 1.1, replaced by getItemCount().
        Returns the number of items in this menu.
        Returns:
        the number of items in this menu
      • 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.
      • 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:
        1.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. This is a convenience method for insert(menuItem, index).
        Parameters:
        label - the text on the item
        index - the position at which the menu item should be inserted
        Throws:
        IllegalArgumentException - if the value of index is less than zero
        Since:
        1.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:
        1.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. If item is null or is not in this menu, this method does nothing.
      • removeAll

        public void removeAll()
        Removes all items from this menu.
        Since:
        1.1
      • paramString

        public String paramString()
        Returns a string representing the state of this Menu. This method is intended to be used only for debugging purposes, and the content and format of the returned string may vary between implementations. The returned string may be empty but may not be null.
        Overrides:
        paramString in class MenuItem
        Returns:
        the parameter string of this menu
      • getAccessibleContext

        public AccessibleContext getAccessibleContext()
        Gets the AccessibleContext associated with this Menu. For menus, the AccessibleContext takes the form of an AccessibleAWTMenu. A new AccessibleAWTMenu instance is created if necessary.
        Specified by:
        getAccessibleContext in interface Accessible
        Overrides:
        getAccessibleContext in class MenuItem
        Returns:
        an AccessibleAWTMenu that serves as the AccessibleContext of this Menu
        Since:
        1.3