public class JMenuItem extends AbstractButton implements Accessible, MenuElement
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 JavaBeansTM
 has been added to the java.beans package.
 Please see XMLEncoder.
JPopupMenu, 
JMenu, 
JCheckBoxMenuItem, 
JRadioButtonMenuItem| Modifier and Type | Class and Description | 
|---|---|
| protected class  | JMenuItem.AccessibleJMenuItemThis class implements accessibility support for the
  JMenuItemclass. | 
AbstractButton.AccessibleAbstractButton, AbstractButton.ButtonChangeListenerJComponent.AccessibleJComponentContainer.AccessibleAWTContainerComponent.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategyactionListener, BORDER_PAINTED_CHANGED_PROPERTY, changeEvent, changeListener, CONTENT_AREA_FILLED_CHANGED_PROPERTY, DISABLED_ICON_CHANGED_PROPERTY, DISABLED_SELECTED_ICON_CHANGED_PROPERTY, FOCUS_PAINTED_CHANGED_PROPERTY, HORIZONTAL_ALIGNMENT_CHANGED_PROPERTY, HORIZONTAL_TEXT_POSITION_CHANGED_PROPERTY, ICON_CHANGED_PROPERTY, itemListener, MARGIN_CHANGED_PROPERTY, MNEMONIC_CHANGED_PROPERTY, model, MODEL_CHANGED_PROPERTY, PRESSED_ICON_CHANGED_PROPERTY, ROLLOVER_ENABLED_CHANGED_PROPERTY, ROLLOVER_ICON_CHANGED_PROPERTY, ROLLOVER_SELECTED_ICON_CHANGED_PROPERTY, SELECTED_ICON_CHANGED_PROPERTY, TEXT_CHANGED_PROPERTY, VERTICAL_ALIGNMENT_CHANGED_PROPERTY, VERTICAL_TEXT_POSITION_CHANGED_PROPERTYaccessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOWBOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTBOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WESTABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH| Constructor and Description | 
|---|
| JMenuItem()Creates a  JMenuItemwith no set text or icon. | 
| JMenuItem(Action a)Creates a menu item whose properties are taken from the
 specified  Action. | 
| JMenuItem(Icon icon)Creates a  JMenuItemwith the specified icon. | 
| JMenuItem(String text)Creates a  JMenuItemwith the specified text. | 
| JMenuItem(String text,
         Icon icon)Creates a  JMenuItemwith the specified text and icon. | 
| JMenuItem(String text,
         int mnemonic)Creates a  JMenuItemwith the specified text and
 keyboard mnemonic. | 
| Modifier and Type | Method and Description | 
|---|---|
| protected void | actionPropertyChanged(Action action,
                     String propertyName)Updates the button's state in response to property changes in the
 associated action. | 
| void | addMenuDragMouseListener(MenuDragMouseListener l)Adds a  MenuDragMouseListenerto the menu item. | 
| void | addMenuKeyListener(MenuKeyListener l)Adds a  MenuKeyListenerto the menu item. | 
| protected void | configurePropertiesFromAction(Action a)Sets the properties on this button to match those in the specified
  Action. | 
| protected void | fireMenuDragMouseDragged(MenuDragMouseEvent event)Notifies all listeners that have registered interest for
 notification on this event type. | 
| protected void | fireMenuDragMouseEntered(MenuDragMouseEvent event)Notifies all listeners that have registered interest for
 notification on this event type. | 
| protected void | fireMenuDragMouseExited(MenuDragMouseEvent event)Notifies all listeners that have registered interest for
 notification on this event type. | 
| protected void | fireMenuDragMouseReleased(MenuDragMouseEvent event)Notifies all listeners that have registered interest for
 notification on this event type. | 
| protected void | fireMenuKeyPressed(MenuKeyEvent event)Notifies all listeners that have registered interest for
 notification on this event type. | 
| protected void | fireMenuKeyReleased(MenuKeyEvent event)Notifies all listeners that have registered interest for
 notification on this event type. | 
| protected void | fireMenuKeyTyped(MenuKeyEvent event)Notifies all listeners that have registered interest for
 notification on this event type. | 
| KeyStroke | getAccelerator()Returns the  KeyStrokewhich serves as an accelerator
 for the menu item. | 
| AccessibleContext | getAccessibleContext()Returns the  AccessibleContextassociated with thisJMenuItem. | 
| Component | getComponent()Returns the  java.awt.Componentused to paint
 this object. | 
| MenuDragMouseListener[] | getMenuDragMouseListeners()Returns an array of all the  MenuDragMouseListeners added
 to this JMenuItem with addMenuDragMouseListener(). | 
| MenuKeyListener[] | getMenuKeyListeners()Returns an array of all the  MenuKeyListeners added
 to this JMenuItem with addMenuKeyListener(). | 
| MenuElement[] | getSubElements()This method returns an array containing the sub-menu
 components for this menu component. | 
| String | getUIClassID()Returns the suffix used to construct the name of the L&F class used to
 render this component. | 
| protected void | init(String text,
    Icon icon)Initializes the menu item with the specified text and icon. | 
| boolean | isArmed()Returns whether the menu item is "armed". | 
| void | menuSelectionChanged(boolean isIncluded)Called by the  MenuSelectionManagerwhen theMenuElementis selected or unselected. | 
| protected String | paramString()Returns a string representation of this  JMenuItem. | 
| void | processKeyEvent(KeyEvent e,
               MenuElement[] path,
               MenuSelectionManager manager)Processes a key event forwarded from the
  MenuSelectionManagerand changes the menu selection,
 if necessary, by usingMenuSelectionManager's API. | 
| void | processMenuDragMouseEvent(MenuDragMouseEvent e)Handles mouse drag in a menu. | 
| void | processMenuKeyEvent(MenuKeyEvent e)Handles a keystroke in a menu. | 
| void | processMouseEvent(MouseEvent e,
                 MenuElement[] path,
                 MenuSelectionManager manager)Processes a mouse event forwarded from the
  MenuSelectionManagerand changes the menu
 selection, if necessary, by using theMenuSelectionManager's API. | 
| void | removeMenuDragMouseListener(MenuDragMouseListener l)Removes a  MenuDragMouseListenerfrom the menu item. | 
| void | removeMenuKeyListener(MenuKeyListener l)Removes a  MenuKeyListenerfrom the menu item. | 
| void | setAccelerator(KeyStroke keyStroke)Sets the key combination which invokes the menu item's
 action listeners without navigating the menu hierarchy. | 
| void | setArmed(boolean b)Identifies the menu item as "armed". | 
| void | setEnabled(boolean b)Enables or disables the menu item. | 
| void | setModel(ButtonModel newModel)Sets the model that this button represents. | 
| void | setUI(MenuItemUI ui)Sets the look and feel object that renders this component. | 
| void | updateUI()Resets the UI property with a value from the current look and feel. | 
addActionListener, addChangeListener, addImpl, addItemListener, checkHorizontalKey, checkVerticalKey, createActionListener, createActionPropertyChangeListener, createChangeListener, createItemListener, doClick, doClick, fireActionPerformed, fireItemStateChanged, fireStateChanged, getAction, getActionCommand, getActionListeners, getChangeListeners, getDisabledIcon, getDisabledSelectedIcon, getDisplayedMnemonicIndex, getHideActionText, getHorizontalAlignment, getHorizontalTextPosition, getIcon, getIconTextGap, getItemListeners, getLabel, getMargin, getMnemonic, getModel, getMultiClickThreshhold, getPressedIcon, getRolloverIcon, getRolloverSelectedIcon, getSelectedIcon, getSelectedObjects, getText, getUI, getVerticalAlignment, getVerticalTextPosition, imageUpdate, isBorderPainted, isContentAreaFilled, isFocusPainted, isRolloverEnabled, isSelected, paintBorder, removeActionListener, removeChangeListener, removeItemListener, removeNotify, setAction, setActionCommand, setBorderPainted, setContentAreaFilled, setDisabledIcon, setDisabledSelectedIcon, setDisplayedMnemonicIndex, setFocusPainted, setHideActionText, setHorizontalAlignment, setHorizontalTextPosition, setIcon, setIconTextGap, setLabel, setLayout, setMargin, setMnemonic, setMnemonic, setMultiClickThreshhold, setPressedIcon, setRolloverEnabled, setRolloverIcon, setRolloverSelectedIcon, setSelected, setSelectedIcon, setText, setUI, setVerticalAlignment, setVerticalTextPositionaddAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, updateadd, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, transferFocusDownCycle, validate, validateTreeaction, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCyclepublic JMenuItem()
JMenuItem with no set text or icon.public JMenuItem(Icon icon)
JMenuItem with the specified icon.icon - the icon of the JMenuItempublic JMenuItem(String text)
JMenuItem with the specified text.text - the text of the JMenuItempublic JMenuItem(Action a)
Action.a - the action of the JMenuItempublic JMenuItem(String text, Icon icon)
JMenuItem with the specified text and icon.text - the text of the JMenuItemicon - the icon of the JMenuItempublic JMenuItem(String text, int mnemonic)
JMenuItem with the specified text and
 keyboard mnemonic.text - the text of the JMenuItemmnemonic - the keyboard mnemonic for the JMenuItempublic void setModel(ButtonModel newModel)
setModel in class AbstractButtonnewModel - the new ButtonModelAbstractButton.getModel()protected void init(String text, Icon icon)
init in class AbstractButtontext - the text of the JMenuItemicon - the icon of the JMenuItempublic void setUI(MenuItemUI ui)
ui - the JMenuItemUI L&F objectUIDefaults.getUI(javax.swing.JComponent)public void updateUI()
updateUI in class AbstractButtonJComponent.updateUI()public String getUIClassID()
getUIClassID in class JComponentJComponent.getUIClassID(), 
UIDefaults.getUI(javax.swing.JComponent)public void setArmed(boolean b)
b - true to arm the menu item so it can be selectedpublic boolean isArmed()
setArmed(boolean)public void setEnabled(boolean b)
setEnabled in class AbstractButtonb - true to enable the itemComponent.isEnabled(), 
Component.isLightweight()public void setAccelerator(KeyStroke keyStroke)
keyStroke - the KeyStroke which will
          serve as an acceleratorpublic KeyStroke getAccelerator()
KeyStroke which serves as an accelerator
 for the menu item.KeyStroke object identifying the
          accelerator keyprotected void configurePropertiesFromAction(Action a)
Action.  Refer to 
 Swing Components Supporting Action for more
 details as to which properties this sets.configurePropertiesFromAction in class AbstractButtona - the Action from which to get the properties,
          or nullAction, 
AbstractButton.setAction(javax.swing.Action)protected void actionPropertyChanged(Action action, String propertyName)
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.
actionPropertyChanged in class AbstractButtonaction - the Action associated with this buttonpropertyName - the name of the property that changedAction, 
AbstractButton.configurePropertiesFromAction(javax.swing.Action)public void processMouseEvent(MouseEvent e, MenuElement[] path, MenuSelectionManager manager)
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.
processMouseEvent in interface MenuElemente - a MouseEventpath - the MenuElement path arraymanager - the MenuSelectionManagerpublic void processKeyEvent(KeyEvent e, MenuElement[] path, MenuSelectionManager manager)
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.
processKeyEvent in interface MenuElemente - a KeyEventpath - the MenuElement path arraymanager - the MenuSelectionManagerpublic void processMenuDragMouseEvent(MenuDragMouseEvent e)
e - a MenuDragMouseEvent objectpublic void processMenuKeyEvent(MenuKeyEvent e)
e - a MenuKeyEvent objectprotected void fireMenuDragMouseEntered(MenuDragMouseEvent event)
event - a MenuMouseDragEventEventListenerListprotected void fireMenuDragMouseExited(MenuDragMouseEvent event)
event - a MenuDragMouseEventEventListenerListprotected void fireMenuDragMouseDragged(MenuDragMouseEvent event)
event - a MenuDragMouseEventEventListenerListprotected void fireMenuDragMouseReleased(MenuDragMouseEvent event)
event - a MenuDragMouseEventEventListenerListprotected void fireMenuKeyPressed(MenuKeyEvent event)
event - a MenuKeyEventEventListenerListprotected void fireMenuKeyReleased(MenuKeyEvent event)
event - a MenuKeyEventEventListenerListprotected void fireMenuKeyTyped(MenuKeyEvent event)
event - a MenuKeyEventEventListenerListpublic void menuSelectionChanged(boolean isIncluded)
MenuSelectionManager when the
 MenuElement is selected or unselected.menuSelectionChanged in interface MenuElementisIncluded - 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 sameMenuSelectionManager.setSelectedPath(MenuElement[])public MenuElement[] getSubElements()
getSubElements in interface MenuElementMenuElementspublic Component getComponent()
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.getComponent in interface MenuElementComponent that paints this menu itempublic void addMenuDragMouseListener(MenuDragMouseListener l)
MenuDragMouseListener to the menu item.l - the MenuDragMouseListener to be addedpublic void removeMenuDragMouseListener(MenuDragMouseListener l)
MenuDragMouseListener from the menu item.l - the MenuDragMouseListener to be removedpublic MenuDragMouseListener[] getMenuDragMouseListeners()
MenuDragMouseListeners added
 to this JMenuItem with addMenuDragMouseListener().MenuDragMouseListeners added or an empty
         array if no listeners have been addedpublic void addMenuKeyListener(MenuKeyListener l)
MenuKeyListener to the menu item.l - the MenuKeyListener to be addedpublic void removeMenuKeyListener(MenuKeyListener l)
MenuKeyListener from the menu item.l - the MenuKeyListener to be removedpublic MenuKeyListener[] getMenuKeyListeners()
MenuKeyListeners added
 to this JMenuItem with addMenuKeyListener().MenuKeyListeners added or an empty
         array if no listeners have been addedprotected String paramString()
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.paramString in class AbstractButtonJMenuItempublic AccessibleContext getAccessibleContext()
AccessibleContext associated with this
 JMenuItem. For JMenuItems,
 the AccessibleContext takes the form of an
 AccessibleJMenuItem.
 A new AccessibleJMenuItme instance is created if necessary.getAccessibleContext in interface AccessiblegetAccessibleContext in class JComponentAccessibleJMenuItem that serves as the
         AccessibleContext of this JMenuItem Submit a bug or feature 
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
 Copyright © 1993, 2014, Oracle and/or its affiliates.  All rights reserved.