Class Menu

  • All Implemented Interfaces:
    Adaptable

    public class Menu
    extends Widget
    Instances of this class are user interface objects that contain menu items.
    Styles:
    BAR, DROP_DOWN, POP_UP, NO_RADIO_GROUP
    LEFT_TO_RIGHT, RIGHT_TO_LEFT
    Events:
    Help, Hide, Show

    Note: Only one of BAR, DROP_DOWN and POP_UP may be specified. Only one of LEFT_TO_RIGHT or RIGHT_TO_LEFT may be specified.

    IMPORTANT: This class is not intended to be subclassed.

    • Constructor Summary

      Constructors 
      Constructor Description
      Menu​(Control parent)
      Constructs a new instance of this class given its parent, and sets the style for the instance so that the instance will be a popup menu on the given parent's shell.
      Menu​(Decorations parent, int style)
      Constructs a new instance of this class given its parent (which must be a Decorations) and a style value describing its behavior and appearance.
      Menu​(Menu menu)
      Constructs a new instance of this class given its parent (which must be a Menu) and sets the style for the instance so that the instance will be a drop-down menu on the given parent's parent.
      Menu​(MenuItem parent)
      Constructs a new instance of this class given its parent (which must be a MenuItem) and sets the style for the instance so that the instance will be a drop-down menu on the given parent's parent menu.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addHelpListener​(HelpListener listener)
      Adds the listener to the collection of listeners who will be notified when the help events are generated for the control, by sending it one of the messages defined in the HelpListener interface.
      void addMenuListener​(MenuListener listener)
      Adds the listener to the collection of listeners who will be notified when menus are hidden or shown, by sending it one of the messages defined in the MenuListener interface.
      <T> T getAdapter​(java.lang.Class<T> adapter)
      Implementation of the Adaptable interface.
      MenuItem getDefaultItem()
      Returns the default menu item or null if none has been previously set.
      boolean getEnabled()
      Returns true if the receiver is enabled, and false otherwise.
      MenuItem getItem​(int index)
      Returns the item at the given, zero-relative index in the receiver.
      int getItemCount()
      Returns the number of items contained in the receiver.
      MenuItem[] getItems()
      Returns a (possibly empty) array of MenuItems which are the items in the receiver.
      int getOrientation()
      Returns the orientation of the receiver, which will be one of the constants SWT.LEFT_TO_RIGHT or SWT.RIGHT_TO_LEFT.
      Decorations getParent()
      Returns the receiver's parent, which must be a Decorations.
      MenuItem getParentItem()
      Returns the receiver's parent item, which must be a MenuItem or null when the receiver is a root.
      Menu getParentMenu()
      Returns the receiver's parent item, which must be a Menu or null when the receiver is a root.
      Shell getShell()
      Returns the receiver's shell.
      boolean getVisible()
      Returns true if the receiver is visible, and false otherwise.
      int indexOf​(MenuItem menuItem)
      Searches the receiver's list starting at the first item (index 0) until an item is found that is equal to the argument, and returns the index of that item.
      boolean isEnabled()
      Returns true if the receiver is enabled and all of the receiver's ancestors are enabled, and false otherwise.
      boolean isVisible()
      Returns true if the receiver is visible and all of the receiver's ancestors are visible and false otherwise.
      void removeHelpListener​(HelpListener listener)
      Removes the listener from the collection of listeners who will be notified when the help events are generated for the control.
      void removeMenuListener​(MenuListener listener)
      Removes the listener from the collection of listeners who will be notified when the menu events are generated for the control.
      void setDefaultItem​(MenuItem item)
      Sets the default menu item to the argument or removes the default emphasis when the argument is null.
      void setEnabled​(boolean enabled)
      Enables the receiver if the argument is true, and disables it otherwise.
      void setLocation​(int x, int y)
      Sets the location of the receiver, which must be a popup, to the point specified by the arguments which are relative to the display.
      void setLocation​(Point location)
      Sets the location of the receiver, which must be a popup, to the point specified by the argument which is relative to the display.
      void setOrientation​(int orientation)
      Sets the orientation of the receiver, which must be one of the constants SWT.LEFT_TO_RIGHT or SWT.RIGHT_TO_LEFT.
      void setVisible​(boolean visible)
      Marks the receiver as visible if the argument is true, and marks it invisible otherwise.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • Menu

        public Menu​(Menu menu)
        Constructs a new instance of this class given its parent (which must be a Menu) and sets the style for the instance so that the instance will be a drop-down menu on the given parent's parent.
        Parameters:
        menu - a menu which will be the parent of the new instance (cannot be null)
        Throws:
        java.lang.IllegalArgumentException -
        • ERROR_NULL_ARGUMENT - if the parent is null
        SWTException -
        • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent
        • ERROR_INVALID_SUBCLASS - if this class is not an allowed subclass
        See Also:
        SWT.DROP_DOWN, Widget.checkSubclass(), Widget.getStyle()
      • Menu

        public Menu​(MenuItem parent)
        Constructs a new instance of this class given its parent (which must be a MenuItem) and sets the style for the instance so that the instance will be a drop-down menu on the given parent's parent menu.
        Parameters:
        parent - a menu item which will be the parent of the new instance (cannot be null)
        Throws:
        java.lang.IllegalArgumentException -
        • ERROR_NULL_ARGUMENT - if the parent is null
        SWTException -
        • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent
        • ERROR_INVALID_SUBCLASS - if this class is not an allowed subclass
        See Also:
        SWT.DROP_DOWN, Widget.checkSubclass(), Widget.getStyle()
      • Menu

        public Menu​(Control parent)
        Constructs a new instance of this class given its parent, and sets the style for the instance so that the instance will be a popup menu on the given parent's shell.
        Parameters:
        parent - a control which will be the parent of the new instance (cannot be null)
        Throws:
        java.lang.IllegalArgumentException -
        • ERROR_NULL_ARGUMENT - if the parent is null
        SWTException -
        • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent
        • ERROR_INVALID_SUBCLASS - if this class is not an allowed subclass
        See Also:
        SWT.POP_UP, Widget.checkSubclass(), Widget.getStyle()
      • Menu

        public Menu​(Decorations parent,
                    int style)
        Constructs a new instance of this class given its parent (which must be a Decorations) and a style value describing its behavior and appearance.

        The style value is either one of the style constants defined in class SWT which is applicable to instances of this class, or must be built by bitwise OR'ing together (that is, using the int "|" operator) two or more of those SWT style constants. The class description lists the style constants that are applicable to the class. Style bits are also inherited from superclasses.

        Parameters:
        parent - a decorations control which will be the parent of the new instance (cannot be null)
        style - the style of menu to construct
        Throws:
        java.lang.IllegalArgumentException -
        • ERROR_NULL_ARGUMENT - if the parent is null
        SWTException -
        • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent
        • ERROR_INVALID_SUBCLASS - if this class is not an allowed subclass
        See Also:
        SWT.BAR, SWT.DROP_DOWN, SWT.POP_UP, SWT.NO_RADIO_GROUP, SWT.LEFT_TO_RIGHT, SWT.RIGHT_TO_LEFT, Widget.checkSubclass(), Widget.getStyle()
    • Method Detail

      • getParent

        public Decorations getParent()
        Returns the receiver's parent, which must be a Decorations.
        Returns:
        the receiver's parent
        Throws:
        SWTException -
        • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
        • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
      • getParentItem

        public MenuItem getParentItem()
        Returns the receiver's parent item, which must be a MenuItem or null when the receiver is a root.
        Returns:
        the receiver's parent item
        Throws:
        SWTException -
        • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
        • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
      • getParentMenu

        public Menu getParentMenu()
        Returns the receiver's parent item, which must be a Menu or null when the receiver is a root.
        Returns:
        the receiver's parent item
        Throws:
        SWTException -
        • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
        • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
      • getAdapter

        public <T> T getAdapter​(java.lang.Class<T> adapter)
        Description copied from class: Widget
        Implementation of the Adaptable interface.

        IMPORTANT: This method is not part of the RWT public API. It is marked public only so that it can be shared within the packages provided by RWT. It should never be accessed from application code.

        Specified by:
        getAdapter in interface Adaptable
        Overrides:
        getAdapter in class Widget
        Parameters:
        adapter - the lookup class
        Returns:
        an object that can be cast to the given class or null if there is no adapter associated with the given class.
      • setLocation

        public void setLocation​(int x,
                                int y)
        Sets the location of the receiver, which must be a popup, to the point specified by the arguments which are relative to the display.

        Note that this is different from most widgets where the location of the widget is relative to the parent.

        Note that the platform window manager ultimately has control over the location of popup menus.

        Parameters:
        x - the new x coordinate for the receiver
        y - the new y coordinate for the receiver
        Throws:
        SWTException -
        • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
        • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
      • setLocation

        public void setLocation​(Point location)
        Sets the location of the receiver, which must be a popup, to the point specified by the argument which is relative to the display.

        Note that this is different from most widgets where the location of the widget is relative to the parent.

        Note that the platform window manager ultimately has control over the location of popup menus.

        Parameters:
        location - the new location for the receiver
        Throws:
        java.lang.IllegalArgumentException -
        • ERROR_NULL_ARGUMENT - if the point is null
        SWTException -
        • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
        • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
        Since:
        1.0
      • getShell

        public Shell getShell()
        Returns the receiver's shell. For all controls other than shells, this simply returns the control's nearest ancestor shell. Shells return themselves, even if they are children of other shells.
        Returns:
        the receiver's shell
        Throws:
        SWTException -
        • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
        • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
        See Also:
        getParent()
      • setOrientation

        public void setOrientation​(int orientation)
        Sets the orientation of the receiver, which must be one of the constants SWT.LEFT_TO_RIGHT or SWT.RIGHT_TO_LEFT.
        Parameters:
        orientation - new orientation style
        Throws:
        SWTException -
        • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
        • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
        Since:
        1.4
      • getOrientation

        public int getOrientation()
        Returns the orientation of the receiver, which will be one of the constants SWT.LEFT_TO_RIGHT or SWT.RIGHT_TO_LEFT.
        Returns:
        the orientation style
        Throws:
        SWTException -
        • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
        • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
        Since:
        1.4
      • setVisible

        public void setVisible​(boolean visible)
        Marks the receiver as visible if the argument is true, and marks it invisible otherwise.

        If one of the receiver's ancestors is not visible or some other condition makes the receiver not visible, marking it visible may not actually cause it to be displayed.

        Parameters:
        visible - the new visibility state
        Throws:
        SWTException -
        • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
        • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
      • getVisible

        public boolean getVisible()
        Returns true if the receiver is visible, and false otherwise.

        If one of the receiver's ancestors is not visible or some other condition makes the receiver not visible, this method may still indicate that it is considered visible even though it may not actually be showing.

        Returns:
        the receiver's visibility state
        Throws:
        SWTException -
        • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
        • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
      • isVisible

        public boolean isVisible()
        Returns true if the receiver is visible and all of the receiver's ancestors are visible and false otherwise.
        Returns:
        the receiver's visibility state
        Throws:
        SWTException -
        • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
        • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
        See Also:
        getVisible()
      • setEnabled

        public void setEnabled​(boolean enabled)
        Enables the receiver if the argument is true, and disables it otherwise. A disabled menu is typically not selectable from the user interface and draws with an inactive or "grayed" look.
        Parameters:
        enabled - the new enabled state
        Throws:
        SWTException -
        • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
        • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
      • getEnabled

        public boolean getEnabled()
        Returns true if the receiver is enabled, and false otherwise. A disabled menu is typically not selectable from the user interface and draws with an inactive or "grayed" look.
        Returns:
        the receiver's enabled state
        Throws:
        SWTException -
        • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
        • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
        See Also:
        isEnabled()
      • isEnabled

        public boolean isEnabled()
        Returns true if the receiver is enabled and all of the receiver's ancestors are enabled, and false otherwise. A disabled menu is typically not selectable from the user interface and draws with an inactive or "grayed" look.
        Returns:
        the receiver's enabled state
        Throws:
        SWTException -
        • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
        • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
        See Also:
        getEnabled()
      • getItemCount

        public int getItemCount()
        Returns the number of items contained in the receiver.
        Returns:
        the number of items
        Throws:
        SWTException -
        • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
        • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
      • getItems

        public MenuItem[] getItems()
        Returns a (possibly empty) array of MenuItems which are the items in the receiver.

        Note: This is not the actual structure used by the receiver to maintain its list of items, so modifying the array will not affect the receiver.

        Returns:
        the items in the receiver
        Throws:
        SWTException -
        • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
        • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
      • getItem

        public MenuItem getItem​(int index)
        Returns the item at the given, zero-relative index in the receiver. Throws an exception if the index is out of range.
        Parameters:
        index - the index of the item to return
        Returns:
        the item at the given index
        Throws:
        java.lang.IllegalArgumentException -
        • ERROR_INVALID_RANGE - if the index is not between 0 and the number of elements in the list minus 1 (inclusive)
        SWTException -
        • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
        • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
      • indexOf

        public int indexOf​(MenuItem menuItem)
        Searches the receiver's list starting at the first item (index 0) until an item is found that is equal to the argument, and returns the index of that item. If no item is found, returns -1.
        Parameters:
        menuItem - the search item
        Returns:
        the index of the item
        Throws:
        java.lang.IllegalArgumentException -
        • ERROR_NULL_ARGUMENT - if the string is null
        SWTException -
        • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
        • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
      • setDefaultItem

        public void setDefaultItem​(MenuItem item)
        Sets the default menu item to the argument or removes the default emphasis when the argument is null.
        Parameters:
        item - the default menu item or null
        Throws:
        java.lang.IllegalArgumentException -
        • ERROR_INVALID_ARGUMENT - if the menu item has been disposed
        SWTException -
        • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
        • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
        Since:
        1.4
      • getDefaultItem

        public MenuItem getDefaultItem()
        Returns the default menu item or null if none has been previously set.
        Returns:
        the default menu item.
      Throws:
      SWTException -
      • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
      • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
      Since:
      1.4
    • addMenuListener

      public void addMenuListener​(MenuListener listener)
      Adds the listener to the collection of listeners who will be notified when menus are hidden or shown, by sending it one of the messages defined in the MenuListener interface.
      Parameters:
      listener - the listener which should be notified
      Throws:
      java.lang.IllegalArgumentException -
      • ERROR_NULL_ARGUMENT - if the listener is null
      SWTException -
      • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
      • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
      See Also:
      MenuListener, removeMenuListener(org.eclipse.swt.events.MenuListener)
    • removeMenuListener

      public void removeMenuListener​(MenuListener listener)
      Removes the listener from the collection of listeners who will be notified when the menu events are generated for the control.
      Parameters:
      listener - the listener which should no longer be notified
      Throws:
      java.lang.IllegalArgumentException -
      • ERROR_NULL_ARGUMENT - if the listener is null
      SWTException -
      • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
      • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
      See Also:
      MenuListener, addMenuListener(org.eclipse.swt.events.MenuListener)
    • addHelpListener

      public void addHelpListener​(HelpListener listener)
      Adds the listener to the collection of listeners who will be notified when the help events are generated for the control, by sending it one of the messages defined in the HelpListener interface.
      Parameters:
      listener - the listener which should be notified
      Throws:
      java.lang.IllegalArgumentException -
      • ERROR_NULL_ARGUMENT - if the listener is null
      SWTException -
      • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
      • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
      Since:
      1.3
      See Also:
      HelpListener, removeHelpListener(org.eclipse.swt.events.HelpListener)
    • removeHelpListener

      public void removeHelpListener​(HelpListener listener)
      Removes the listener from the collection of listeners who will be notified when the help events are generated for the control.
      Parameters:
      listener - the listener which should no longer be notified
      Throws:
      java.lang.IllegalArgumentException -
      • ERROR_NULL_ARGUMENT - if the listener is null
      SWTException -
      • ERROR_WIDGET_DISPOSED - if the receiver has been disposed
      • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
      Since:
      1.3
      See Also:
      HelpListener, addHelpListener(org.eclipse.swt.events.HelpListener)