Package Summary  Overview Summary

class:JMenuItem [CHANGED]

All Implemented Interfaces:
ImageObserver, ItemSelectable, MenuContainer, Serializable, Accessible, MenuElement, SwingConstants
Direct Known Subclasses:
JCheckBoxMenuItem, JMenu, JRadioButtonMenuItem

@JavaBean(defaultProperty="UIClassID",
          description="An item which can be selected in a menu.")
public class JMenuItem
extends AbstractButton
implements Accessible, MenuElement
An implementation of an item in a menu. A menu item is essentially a button sitting in a list. When the user selects the "button", the action associated with the menu item is performed. A JMenuItem contained in a JPopupMenu performs exactly that function.

Menu items can be configured, and to some degree controlled, by Actions. Using an Action with a menu item has many benefits beyond directly configuring a menu item. Refer to Swing Components Supporting Action for more details, and you can find more information in How to Use Actions , a section in The Java Tutorial .

For further documentation and for examples, see How to Use Menus in The Java Tutorial.

Warning: Swing is not thread safe. For more information see Swing's Threading Policy .

Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeans™JavaBeans has been added to the java.beans package. Please see XMLEncoder.

Since:
1.2
See Also:
JPopupMenu, JMenu, JCheckBoxMenuItem, JRadioButtonMenuItem
All Implemented Interfaces:
ImageObserver, ItemSelectable, MenuContainer, Serializable, Accessible, MenuElement, SwingConstants
Direct Known Subclasses:
JCheckBoxMenuItem, JMenu, JRadioButtonMenuItem

@JavaBean(defaultProperty="UIClassID",
          description="An item which can be selected in a menu.")
public class JMenuItem
extends AbstractButton
implements Accessible, MenuElement
An implementation of an item in a menu. A menu item is essentially a button sitting in a list. When the user selects the "button", the action associated with the menu item is performed. A JMenuItem contained in a JPopupMenu performs exactly that function.

Menu items can be configured, and to some degree controlled, by Actions. Using an Action with a menu item has many benefits beyond directly configuring a menu item. Refer to Swing Components Supporting Action for more details, and you can find more information in How to Use Actions , a section in The Java Tutorial .

For further documentation and for examples, see How to Use Menus in The Java Tutorial.

Warning: Swing is not thread safe. For more information see Swing's Threading Policy .

Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeans™ has been added to the java.beans package. Please see XMLEncoder.

Since:
1.2
See Also:
JPopupMenu, JMenu, JCheckBoxMenuItem, JRadioButtonMenuItem
All Implemented Interfaces:
ImageObserver, ItemSelectable, MenuContainer, Serializable, Accessible, MenuElement, SwingConstants
Direct Known Subclasses:
JCheckBoxMenuItem, JMenu, JRadioButtonMenuItem

@JavaBean(defaultProperty="UIClassID",
          description="An item which can be selected in a menu.")
public class JMenuItem
extends AbstractButton
implements Accessible, MenuElement
An implementation of an item in a menu. A menu item is essentially a button sitting in a list. When the user selects the "button", the action associated with the menu item is performed. A JMenuItem contained in a JPopupMenu performs exactly that function.

Menu items can be configured, and to some degree controlled, by Actions. Using an Action with a menu item has many benefits beyond directly configuring a menu item. Refer to Swing Components Supporting Action for more details, and you can find more information in How to Use Actions , a section in The Java Tutorial .

For further documentation and for examples, see How to Use Menus in The Java Tutorial.

Warning: Swing is not thread safe. For more information see Swing's Threading Policy .

Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeans has been added to the java.beans package. Please see XMLEncoder.

Since:
1.2
See Also:
JPopupMenu, JMenu, JCheckBoxMenuItem, JRadioButtonMenuItem

constructor:JMenuItem() [NONE]

  • JMenuItem

    public JMenuItem()
    Creates a JMenuItem with no set text or icon.
  • constructor:JMenuItem(javax.swing.Icon) [NONE]

    JMenuItem

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

    constructor:JMenuItem(java.lang.String) [NONE]

    JMenuItem

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

    constructor:JMenuItem(javax.swing.Action) [NONE]

    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

    constructor:JMenuItem(java.lang.String,javax.swing.Icon) [NONE]

    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

    constructor:JMenuItem(java.lang.String,int) [NONE]

    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:setModel(javax.swing.ButtonModel) [NONE]

  • setModel

    public void setModel?(ButtonModel newModel)
    Sets the model that this button represents.
    Overrides:
    setModel in class AbstractButton
    Parameters:
    newModel - the new ButtonModel
    See Also:
    AbstractButton.getModel()
  • method:init(java.lang.String,javax.swing.Icon) [NONE]

    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

    method:setUI(javax.swing.plaf.MenuItemUI) [NONE]

    setUI

    @BeanProperty(hidden=true, visualUpdate=true, description="The UI object that implements the LookAndFeel.") public void setUI?(MenuItemUI ui)
    Sets the look and feel object that renders this component.
    Parameters:
    ui - the JMenuItemUI L&F object
    See Also:
    UIDefaults.getUI(javax.swing.JComponent)

    method:updateUI() [NONE]

    updateUI

    public void updateUI()
    Resets the UI property with a value from the current look and feel.
    Overrides:
    updateUI in class AbstractButton
    See Also:
    JComponent.updateUI()

    method:getUIClassID() [NONE]

    getUIClassID

    @BeanProperty(bound=false) public String getUIClassID()
    Returns the suffix used to construct the name of the L&F class used to render this component.
    Overrides:
    getUIClassID in class JComponent
    Returns:
    the string "MenuItemUI"
    See Also:
    JComponent.getUIClassID(), UIDefaults.getUI(javax.swing.JComponent)

    method:setArmed(boolean) [NONE]

    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

    method:isArmed() [NONE]

    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)

    method:setEnabled(boolean) [NONE]

    setEnabled

    @BeanProperty(preferred=true, description="The enabled state of the component.") public void setEnabled?(boolean b)
    Enables or disables the menu item.
    Overrides:
    setEnabled in class AbstractButton
    Parameters:
    b - true to enable the item
    See Also:
    Component.isEnabled(), Component.isLightweight()

    method:setAccelerator(javax.swing.KeyStroke) [NONE]

    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

    method:getAccelerator() [NONE]

    getAccelerator

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

    method:configurePropertiesFromAction(javax.swing.Action) [NONE]

    configurePropertiesFromAction

    protected void configurePropertiesFromAction?(Action a)
    Sets the properties on this button to match those in the specified Action. Refer to Swing Components Supporting Action for more details as to which properties this sets.
    Overrides:
    configurePropertiesFromAction in class AbstractButton
    Parameters:
    a - the Action from which to get the properties, or null
    Since:
    1.3
    See Also:
    Action, AbstractButton.setAction(javax.swing.Action)

    method:actionPropertyChanged(javax.swing.Action,java.lang.String) [NONE]

    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)

    method:processMouseEvent(java.awt.event.MouseEvent,javax.swing.MenuElement[],javax.swing.MenuSelectionManager) [NONE]

    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

    method:processKeyEvent(java.awt.event.KeyEvent,javax.swing.MenuElement[],javax.swing.MenuSelectionManager) [NONE]

    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

    method:processMenuDragMouseEvent(javax.swing.event.MenuDragMouseEvent) [NONE]

    processMenuDragMouseEvent

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

    method:processMenuKeyEvent(javax.swing.event.MenuKeyEvent) [NONE]

    processMenuKeyEvent

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

    method:fireMenuDragMouseEntered(javax.swing.event.MenuDragMouseEvent) [NONE]

    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

    method:fireMenuDragMouseExited(javax.swing.event.MenuDragMouseEvent) [NONE]

    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

    method:fireMenuDragMouseDragged(javax.swing.event.MenuDragMouseEvent) [NONE]

    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

    method:fireMenuDragMouseReleased(javax.swing.event.MenuDragMouseEvent) [NONE]

    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

    method:fireMenuKeyPressed(javax.swing.event.MenuKeyEvent) [NONE]

    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

    method:fireMenuKeyReleased(javax.swing.event.MenuKeyEvent) [NONE]

    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

    method:fireMenuKeyTyped(javax.swing.event.MenuKeyEvent) [NONE]

    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

    method:menuSelectionChanged(boolean) [NONE]

    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[])

    method:getSubElements() [NONE]

    getSubElements

    @BeanProperty(bound=false) public MenuElement[] getSubElements()
    This method returns an array containing the sub-menu components for this menu component.
    Specified by:
    getSubElements in interface MenuElement
    Returns:
    an array of MenuElements

    method:getComponent() [NONE]

    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

    method:addMenuDragMouseListener(javax.swing.event.MenuDragMouseListener) [NONE]

    addMenuDragMouseListener

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

    method:removeMenuDragMouseListener(javax.swing.event.MenuDragMouseListener) [NONE]

    removeMenuDragMouseListener

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

    method:getMenuDragMouseListeners() [NONE]

    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

    method:addMenuKeyListener(javax.swing.event.MenuKeyListener) [NONE]

    addMenuKeyListener

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

    method:removeMenuKeyListener(javax.swing.event.MenuKeyListener) [NONE]

    removeMenuKeyListener

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

    method:getMenuKeyListeners() [NONE]

    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

    method:paramString() [NONE]

    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

    method:getAccessibleContext() [NONE]

    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

    © 2020 Oracle Corporation and/or its affiliates