Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| JavaTM 2 Platform Std. Ed. v1.3.1
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## javax.swing
Class JMenuItem

    java.lang.Object
      |
      +--java.awt.Component
            |
            +--java.awt.Container
                  |
                  +--javax.swing.JComponent
                        |
                        +--javax.swing.AbstractButton
                              |
                              +--javax.swing.JMenuItem

All Implemented Interfaces:
  Accessible, ImageObserver, ItemSelectable, MenuContainer, MenuElement, Serializable, SwingConstants

Direct Known Subclasses:
  JCheckBoxMenuItem, JMenu, JRadioButtonMenuItem

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.

For further documentation and for examples, see How to Use Menus in The Java Tutorial. For the keyboard keys used by this component in the standard Look and Feel (L&F) renditions, see the JMenuItem key assignments.

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. A future release of Swing will provide support for long term persistence.

See Also:
  `JPopupMenu`, `JMenu`, `JCheckBoxMenuItem`, `JRadioButtonMenuItem`, Serialized Form

Inner Class Summary
`protected class` | `JMenuItem.AccessibleJMenuItem` This class implements accessibility support for the `JMenuItem` class.

Inner classes inherited from class javax.swing.AbstractButton
`AbstractButton.AccessibleAbstractButton, AbstractButton.ButtonChangeListener`

Inner classes inherited from class javax.swing.JComponent
`JComponent.AccessibleJComponent`

Inner classes inherited from class java.awt.Container
`Container.AccessibleAWTContainer`

Inner classes inherited from class java.awt.Component
`Component.AccessibleAWTComponent`

Fields inherited from class javax.swing.AbstractButton
`actionListener, 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_PROPERTY`

Fields inherited from class javax.swing.JComponent
`accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW`

Fields inherited from class java.awt.Component
`BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

Fields inherited from interface javax.swing.SwingConstants
`BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NORTH, NORTH_EAST, NORTH_WEST, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST`

Fields inherited from interface java.awt.image.ImageObserver
`ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

Constructor Summary
`JMenuItem()` Creates a menuItem with no set text or icon.
`JMenuItem(Action a)` Creates a menu item whose properties are taken from the Action supplied.
`JMenuItem(Icon icon)` Creates a menuItem with an icon.
`JMenuItem(String text)` Creates a menuItem with text.
`JMenuItem(String text, Icon icon)` Creates a menu item with the supplied text and icon.
`JMenuItem(String text, int mnemonic)` Creates a menuItem with the specified text and keyboard mnemonic.

Method Summary
`void` | `addMenuDragMouseListener(MenuDragMouseListener l)` Adds a MenuDragMouseListener to the menu item
`void` | `addMenuKeyListener(MenuKeyListener l)` Adds a MenuKeyListener to the menu item
`protected void` | `configurePropertiesFromAction(Action a)` Factory method which sets the ActionEvent source's properties according to values from the Action instance.
`protected PropertyChangeListener` | `createActionPropertyChangeListener(Action a)` Factory method which creates the PropertyChangeListener used to update the ActionEvent source as properties change on its Action instance.
`protected void` | `fireMenuDragMouseDragged(MenuDragMouseEvent event)`
`protected void` | `fireMenuDragMouseEntered(MenuDragMouseEvent event)`
`protected void` | `fireMenuDragMouseExited(MenuDragMouseEvent event)`
`protected void` | `fireMenuDragMouseReleased(MenuDragMouseEvent event)`
`protected void` | `fireMenuKeyPressed(MenuKeyEvent event)`
`protected void` | `fireMenuKeyReleased(MenuKeyEvent event)`
`protected void` | `fireMenuKeyTyped(MenuKeyEvent event)`
`KeyStroke` | `getAccelerator()` Returns the KeyStroke which serves as an accelerator for the menu item.
`AccessibleContext` | `getAccessibleContext()` Gets the AccessibleContext associated with this JMenuItem.
`Component` | `getComponent()` This method returns the java.awt.Component used to paint this object.
`MenuElement[]` | `getSubElements()` This method returns an array containing the sub-menu components for this menu component.
`String` | `getUIClassID()` Returns the name of the L&F class that renders this component.
`protected void` | `init(String text, Icon icon)` Initialize 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 MenuSelectionManager when the MenuElement is selected or unselected.
`protected String` | `paramString()` Returns a string representation of this JMenuItem.
`void` | `processKeyEvent(KeyEvent e, MenuElement[] path, MenuSelectionManager manager)` Process a key event forwarded from the MenuSelectionManager.
`void` | `processMenuDragMouseEvent(MenuDragMouseEvent e)` Handle mouse drag in a menu.
`void` | `processMenuKeyEvent(MenuKeyEvent e)` Handle a keystroke in a menu.
`void` | `processMouseEvent(MouseEvent e, MenuElement[] path, MenuSelectionManager manager)` Process a mouse event forwarded from the MenuSelectionManager.
`void` | `removeMenuDragMouseListener(MenuDragMouseListener l)` Removes a MenuDragMouseListener from the menu item
`void` | `removeMenuKeyListener(MenuKeyListener l)` Removes a MenuKeyListener from the menu item
`void` | `setAccelerator(KeyStroke keyStroke)` Set 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)` Enable or disable the menu item.
`void` | `setUI(MenuItemUI ui)` Sets the L&F object that renders this component.
`void` | `updateUI()` Resets the UI property with a value from the current look and feel.

Methods inherited from class javax.swing.AbstractButton
`addActionListener, addChangeListener, addItemListener, checkHorizontalKey, checkVerticalKey, createActionListener, createChangeListener, createItemListener, doClick, doClick, fireActionPerformed, fireItemStateChanged, fireStateChanged, getAction, getActionCommand, getDisabledIcon, getDisabledSelectedIcon, getHorizontalAlignment, getHorizontalTextPosition, getIcon, getLabel, getMargin, getMnemonic, getModel, getPressedIcon, getRolloverIcon, getRolloverSelectedIcon, getSelectedIcon, getSelectedObjects, getText, getUI, getVerticalAlignment, getVerticalTextPosition, imageUpdate, isBorderPainted, isContentAreaFilled, isFocusPainted, isFocusTraversable, isRolloverEnabled, isSelected, paintBorder, removeActionListener, removeChangeListener, removeItemListener, setAction, setActionCommand, setBorderPainted, setContentAreaFilled, setDisabledIcon, setDisabledSelectedIcon, setFocusPainted, setHorizontalAlignment, setHorizontalTextPosition, setIcon, setLabel, setMargin, setMnemonic, setMnemonic, setModel, setPressedIcon, setRolloverEnabled, setRolloverIcon, setRolloverSelectedIcon, setSelected, setSelectedIcon, setText, setUI, setVerticalAlignment, setVerticalTextPosition`

Methods inherited from class javax.swing.JComponent
`addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getVerifyInputWhenFocusTarget, getVisibleRect, getWidth, getX, getY, grabFocus, hasFocus, hide, isDoubleBuffered, isFocusCycleRoot, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processFocusEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDoubleBuffered, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update`

Methods inherited from class java.awt.Container
`add, add, add, add, add, addContainerListener, addImpl, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getLayout, insets, invalidate, isAncestorOf, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setLayout, validate, validateTree`

Methods inherited from class java.awt.Component
`action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getBackground, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getInputContext, getInputMethodRequests, getLocale, getLocation, getLocationOnScreen, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, inside, isDisplayable, isEnabled, isLightweight, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### JMenuItem

    public JMenuItem()

  Creates a menuItem with no set text or icon.

### JMenuItem

    public JMenuItem(Icon icon)

  Creates a menuItem with an icon.
  Parameters:
    `icon` - the icon of the MenuItem.

### JMenuItem

    public JMenuItem(String text)

  Creates a menuItem with text.
  Parameters:
    `text` - the text of the MenuItem.

### JMenuItem

    public JMenuItem(Action a)

  Creates a menu item whose properties are taken from the Action supplied.
  Since:
    1.3

### JMenuItem

    public JMenuItem(String text,
                     Icon icon)

  Creates a menu item with the supplied text and icon.
  Parameters:
    `text` - the text of the MenuItem.
    `icon` - the icon of the MenuItem.

### JMenuItem

    public JMenuItem(String text,
                     int mnemonic)

  Creates a menuItem with the specified text and keyboard mnemonic.
  Parameters:
    `text` - the text of the MenuItem.
    `mnemonic` - the keyboard mnemonic for the MenuItem

Method Detail

### init

    protected void init(String text,
                        Icon icon)

  Initialize the menu item with the specified text and icon.
  Overrides:
    `init` in class `AbstractButton`
  Parameters:
    `text` - the text of the MenuItem.
    `icon` - the icon of the MenuItem.

### setUI

    public void setUI(MenuItemUI ui)

  Sets the L&F object that renders this component.
  Parameters:
    `ui` - the MenuItemUI L&F object
  See Also:
    `UIDefaults.getUI(javax.swing.JComponent)`

### 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()`

### getUIClassID

    public String getUIClassID()

  Returns the name of the L&F class that renders this component.
  Overrides:
    `getUIClassID` in class `JComponent`
  Returns:
    "MenuItemUI"
  See Also:
    `JComponent.getUIClassID()`, `UIDefaults.getUI(javax.swing.JComponent)`

### setArmed

    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)`

### setEnabled

    public void setEnabled(boolean b)

  Enable or disable the menu item.
  Overrides:
    `setEnabled` in class `AbstractButton`
  Parameters:
    `b` - true to enable the item

### setAccelerator

    public void setAccelerator(KeyStroke keyStroke)

  Set the key combination which invokes the Menu Item's action listeners without navigating the menu hierarchy. It is the UIs responsibility to do install the correct action.
  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

### configurePropertiesFromAction

    protected void configurePropertiesFromAction(Action a)

  Factory method which sets the ActionEvent source's properties according to values from the Action instance. The properties which are set may differ for subclasses. By default, the properties which get set are Text, Icon
  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)`

### createActionPropertyChangeListener

    protected PropertyChangeListener createActionPropertyChangeListener(Action a)

  Factory method which creates the PropertyChangeListener used to update the ActionEvent source as properties change on its Action instance. Subclasses may override this in order to provide their own PropertyChangeListener if the set of properties which should be kept up to date differs from the Note that PropertyChangeListeners should avoid holding strong references to the ActionEvent source, as this may hinder garbage collection of the ActionEvent source and all components in its containment hierarchy.
  Overrides:
    `createActionPropertyChangeListener` in class `AbstractButton`
  Since:
    1.3
  See Also:
    `Action`, `AbstractButton.setAction(javax.swing.Action)`

### processMouseEvent

    public void processMouseEvent(MouseEvent e,
                                  MenuElement[] path,
                                  MenuSelectionManager manager)

  Process a mouse event forwarded from the MenuSelectionManager.
  Specified by:
    `processMouseEvent` in interface `MenuElement`
  Parameters:
    `event` - A MouseEvent with source being the receiving component.
    `componentPath` - The MenuElement path array to the receiving component.
    `manager` - The MenuSelectionManager for the menu hierarchy. This method should process the MouseEvent and change 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

    public void processKeyEvent(KeyEvent e,
                                MenuElement[] path,
                                MenuSelectionManager manager)

  Process a key event forwarded from the MenuSelectionManager.
  Specified by:
    `processKeyEvent` in interface `MenuElement`
  Parameters:
    `event` - A KeyEvent with source being the receiving component.
    `componentPath` - The MenuElement path array to the receiving component.
    `manager` - The MenuSelectionManager for the menu hierarchy. This method should process the KeyEvent and change 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

### processMenuDragMouseEvent

    public void processMenuDragMouseEvent(MenuDragMouseEvent e)

  Handle mouse drag in a menu.
  Parameters:
    `e` - a MenuDragMouseEvent object

### processMenuKeyEvent

    public void processMenuKeyEvent(MenuKeyEvent e)

  Handle a keystroke in a menu.
  Parameters:
    `e` - a MenuKeyEvent object

### fireMenuDragMouseEntered

    protected void fireMenuDragMouseEntered(MenuDragMouseEvent event)

### fireMenuDragMouseExited

    protected void fireMenuDragMouseExited(MenuDragMouseEvent event)

### fireMenuDragMouseDragged

    protected void fireMenuDragMouseDragged(MenuDragMouseEvent event)

### fireMenuDragMouseReleased

    protected void fireMenuDragMouseReleased(MenuDragMouseEvent event)

### fireMenuKeyPressed

    protected void fireMenuKeyPressed(MenuKeyEvent event)

### fireMenuKeyReleased

    protected void fireMenuKeyReleased(MenuKeyEvent event)

### fireMenuKeyTyped

    protected void fireMenuKeyTyped(MenuKeyEvent event)

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

### getSubElements

    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

### getComponent

    public Component getComponent()

  This method 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

### removeMenuDragMouseListener

    public void removeMenuDragMouseListener(MenuDragMouseListener l)

  Removes a MenuDragMouseListener from the menu item

### addMenuKeyListener

    public void addMenuKeyListener(MenuKeyListener l)

  Adds a MenuKeyListener to the menu item

### removeMenuKeyListener

    public void removeMenuKeyListener(MenuKeyListener l)

  Removes a MenuKeyListener from the menu item

### 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

    public AccessibleContext getAccessibleContext()

  Gets 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 `JComponent`
  Returns:
    an AccessibleJMenuItem that serves as the AccessibleContext of this JMenuItem

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| JavaTM 2 Platform Std. Ed. v1.3.1
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Submit a bug or feature
For further API reference and developer documentation, see Java 2 SDK SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Java, Java 2D, and JDBC are trademarks or registered trademarks of Sun Microsystems, Inc. in the US and other countries.
Copyright 1993-2001 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.