Module java.desktop
Package javax.swing

Class JMenuItem

    • Constructor Detail

      • JMenuItem

        public JMenuItem​()
        Creates a JMenuItem with no set text or icon.
      • JMenuItem

        public JMenuItem​(Icon icon)
        Creates a JMenuItem with the specified icon.
        Parameters:
        icon - the icon of the JMenuItem
      • JMenuItem

        public JMenuItem​(String text)
        Creates a JMenuItem with the specified text.
        Parameters:
        text - the text of the JMenuItem
      • JMenuItem

        public JMenuItem​(Action a)
        Creates a menu item whose properties are taken from the specified Action.
        Parameters:
        a - the action of the JMenuItem
        Since:
        1.3
      • JMenuItem

        public JMenuItem​(String text,
                         Icon icon)
        Creates a JMenuItem with the specified text and icon.
        Parameters:
        text - the text of the JMenuItem
        icon - the icon of the JMenuItem
      • JMenuItem

        public JMenuItem​(String text,
                         int mnemonic)
        Creates a JMenuItem with the specified text and keyboard mnemonic.
        Parameters:
        text - the text of the JMenuItem
        mnemonic - the keyboard mnemonic for the JMenuItem
    • Method Detail

      • init

        protected void init​(String text,
                            Icon icon)
        Initializes the menu item with the specified text and icon.
        Overrides:
        init in class AbstractButton
        Parameters:
        text - the text of the JMenuItem
        icon - the icon of the JMenuItem
      • setArmed

        @BeanProperty(bound=false,
                      hidden=true,
                      description="Mouse release will fire an action event")
        public void setArmed​(boolean b)
        Identifies the menu item as "armed". If the mouse button is released while it is over this item, the menu's action event will fire. If the mouse button is released elsewhere, the event will not fire and the menu item will be disarmed.
        Parameters:
        b - true to arm the menu item so it can be selected
      • isArmed

        public boolean isArmed​()
        Returns whether the menu item is "armed".
        Returns:
        true if the menu item is armed, and it can be selected
        See Also:
        setArmed(boolean)
      • setAccelerator

        @BeanProperty(preferred=true,
                      description="The keystroke combination which will invoke the JMenuItem\'s actionlisteners without navigating the menu hierarchy")
        public void setAccelerator​(KeyStroke keyStroke)
        Sets the key combination which invokes the menu item's action listeners without navigating the menu hierarchy. It is the UI's responsibility to install the correct action. Note that when the keyboard accelerator is typed, it will work whether or not the menu is currently displayed.
        Parameters:
        keyStroke - the KeyStroke which will serve as an accelerator
      • getAccelerator

        public KeyStroke getAccelerator​()
        Returns the KeyStroke which serves as an accelerator for the menu item.
        Returns:
        a KeyStroke object identifying the accelerator key
      • actionPropertyChanged

        protected void actionPropertyChanged​(Action action,
                                             String propertyName)
        Updates the button's state in response to property changes in the associated action. This method is invoked from the PropertyChangeListener returned from createActionPropertyChangeListener. Subclasses do not normally need to invoke this. Subclasses that support additional Action properties should override this and configurePropertiesFromAction.

        Refer to the table at Swing Components Supporting Action for a list of the properties this method sets.

        Overrides:
        actionPropertyChanged in class AbstractButton
        Parameters:
        action - the Action associated with this button
        propertyName - the name of the property that changed
        Since:
        1.6
        See Also:
        Action, AbstractButton.configurePropertiesFromAction(javax.swing.Action)
      • processMouseEvent

        public void processMouseEvent​(MouseEvent e,
                                      MenuElement[] path,
                                      MenuSelectionManager manager)
        Processes a mouse event forwarded from the MenuSelectionManager and changes the menu selection, if necessary, by using the MenuSelectionManager's API.

        Note: you do not have to forward the event to sub-components. This is done automatically by the MenuSelectionManager.

        Specified by:
        processMouseEvent in interface MenuElement
        Parameters:
        e - a MouseEvent
        path - the MenuElement path array
        manager - the MenuSelectionManager
      • processKeyEvent

        public void processKeyEvent​(KeyEvent e,
                                    MenuElement[] path,
                                    MenuSelectionManager manager)
        Processes a key event forwarded from the MenuSelectionManager and changes the menu selection, if necessary, by using MenuSelectionManager's API.

        Note: you do not have to forward the event to sub-components. This is done automatically by the MenuSelectionManager.

        Specified by:
        processKeyEvent in interface MenuElement
        Parameters:
        e - a KeyEvent
        path - the MenuElement path array
        manager - the MenuSelectionManager
      • processMenuDragMouseEvent

        public void processMenuDragMouseEvent​(MenuDragMouseEvent e)
        Handles mouse drag in a menu.
        Parameters:
        e - a MenuDragMouseEvent object
      • processMenuKeyEvent

        public void processMenuKeyEvent​(MenuKeyEvent e)
        Handles a keystroke in a menu.
        Parameters:
        e - a MenuKeyEvent object
      • fireMenuDragMouseEntered

        protected void fireMenuDragMouseEntered​(MenuDragMouseEvent event)
        Notifies all listeners that have registered interest for notification on this event type.
        Parameters:
        event - a MenuMouseDragEvent
        See Also:
        EventListenerList
      • fireMenuDragMouseExited

        protected void fireMenuDragMouseExited​(MenuDragMouseEvent event)
        Notifies all listeners that have registered interest for notification on this event type.
        Parameters:
        event - a MenuDragMouseEvent
        See Also:
        EventListenerList
      • fireMenuDragMouseDragged

        protected void fireMenuDragMouseDragged​(MenuDragMouseEvent event)
        Notifies all listeners that have registered interest for notification on this event type.
        Parameters:
        event - a MenuDragMouseEvent
        See Also:
        EventListenerList
      • fireMenuDragMouseReleased

        protected void fireMenuDragMouseReleased​(MenuDragMouseEvent event)
        Notifies all listeners that have registered interest for notification on this event type.
        Parameters:
        event - a MenuDragMouseEvent
        See Also:
        EventListenerList
      • fireMenuKeyPressed

        protected void fireMenuKeyPressed​(MenuKeyEvent event)
        Notifies all listeners that have registered interest for notification on this event type.
        Parameters:
        event - a MenuKeyEvent
        See Also:
        EventListenerList
      • fireMenuKeyReleased

        protected void fireMenuKeyReleased​(MenuKeyEvent event)
        Notifies all listeners that have registered interest for notification on this event type.
        Parameters:
        event - a MenuKeyEvent
        See Also:
        EventListenerList
      • fireMenuKeyTyped

        protected void fireMenuKeyTyped​(MenuKeyEvent event)
        Notifies all listeners that have registered interest for notification on this event type.
        Parameters:
        event - a MenuKeyEvent
        See Also:
        EventListenerList
      • menuSelectionChanged

        public void menuSelectionChanged​(boolean isIncluded)
        Called by the MenuSelectionManager when the MenuElement is selected or unselected.
        Specified by:
        menuSelectionChanged in interface MenuElement
        Parameters:
        isIncluded - true if this menu item is on the part of the menu path that changed, false if this menu is part of the a menu path that changed, but this particular part of that path is still the same
        See Also:
        MenuSelectionManager.setSelectedPath(MenuElement[])
      • getComponent

        public Component getComponent​()
        Returns the java.awt.Component used to paint this object. The returned component will be used to convert events and detect if an event is inside a menu component.
        Specified by:
        getComponent in interface MenuElement
        Returns:
        the Component that paints this menu item
      • addMenuDragMouseListener

        public void addMenuDragMouseListener​(MenuDragMouseListener l)
        Adds a MenuDragMouseListener to the menu item.
        Parameters:
        l - the MenuDragMouseListener to be added
      • removeMenuDragMouseListener

        public void removeMenuDragMouseListener​(MenuDragMouseListener l)
        Removes a MenuDragMouseListener from the menu item.
        Parameters:
        l - the MenuDragMouseListener to be removed
      • getMenuDragMouseListeners

        @BeanProperty(bound=false)
        public MenuDragMouseListener[] getMenuDragMouseListeners​()
        Returns an array of all the MenuDragMouseListeners added to this JMenuItem with addMenuDragMouseListener().
        Returns:
        all of the MenuDragMouseListeners added or an empty array if no listeners have been added
        Since:
        1.4
      • addMenuKeyListener

        public void addMenuKeyListener​(MenuKeyListener l)
        Adds a MenuKeyListener to the menu item.
        Parameters:
        l - the MenuKeyListener to be added
      • removeMenuKeyListener

        public void removeMenuKeyListener​(MenuKeyListener l)
        Removes a MenuKeyListener from the menu item.
        Parameters:
        l - the MenuKeyListener to be removed
      • getMenuKeyListeners

        @BeanProperty(bound=false)
        public MenuKeyListener[] getMenuKeyListeners​()
        Returns an array of all the MenuKeyListeners added to this JMenuItem with addMenuKeyListener().
        Returns:
        all of the MenuKeyListeners added or an empty array if no listeners have been added
        Since:
        1.4
      • paramString

        protected String paramString​()
        Returns a string representation of this JMenuItem. 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 AbstractButton
        Returns:
        a string representation of this JMenuItem
      • getAccessibleContext

        @BeanProperty(bound=false)
        public AccessibleContext getAccessibleContext​()
        Returns the AccessibleContext associated with this JMenuItem. For JMenuItems, the AccessibleContext takes the form of an AccessibleJMenuItem. A new AccessibleJMenuItme instance is created if necessary.
        Specified by:
        getAccessibleContext in interface Accessible
        Overrides:
        getAccessibleContext in class Component
        Returns:
        an AccessibleJMenuItem that serves as the AccessibleContext of this JMenuItem