JavaTM 2 Platform
Standard Edition

javax.swing
Class JMenuItem

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.AbstractButton
                          |
                          +--javax.swing.JMenuItem
Direct Known Subclasses:
JCheckBoxMenuItem, JMenu, JRadioButtonMenuItem

public class JMenuItem
extends AbstractButton
implements Accessible, MenuElement

An implementation of a MenuItem. 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 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
          The class used to obtain the accessible role for this object.
 
Inner classes inherited from class javax.swing.AbstractButton
AbstractButton.AccessibleAbstractButton, AbstractButton.ButtonChangeListener
 
Inner classes inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
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
 
Constructor Summary
JMenuItem()
          Creates a menuItem with no set text or icon.
JMenuItem(Icon icon)
          Creates a menuItem with an icon.
JMenuItem(String text)
          Creates a menuItem with text.
JMenuItem(String text, Icon icon)
          Creates a menuItem 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 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()
          Get the AccessibleContext associated with this JComponent
 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()
          Notification from the UIFactory that the L&F has changed.
 
Methods inherited from class javax.swing.AbstractButton
addActionListener, addChangeListener, addItemListener, checkHorizontalKey, checkVerticalKey, createActionListener, createChangeListener, createItemListener, doClick, doClick, fireActionPerformed, fireItemStateChanged, fireStateChanged, getActionCommand, getDisabledIcon, getDisabledSelectedIcon, getHorizontalAlignment, getHorizontalTextPosition, getIcon, getLabel, getMargin, getMnemonic, getModel, getPressedIcon, getRolloverIcon, getRolloverSelectedIcon, getSelectedIcon, getSelectedObjects, getText, getUI, getVerticalAlignment, getVerticalTextPosition, isBorderPainted, isContentAreaFilled, isFocusPainted, isRolloverEnabled, isSelected, paintBorder, removeActionListener, removeChangeListener, removeItemListener, 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, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getAlignmentX, getAlignmentY, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getGraphics, getHeight, getInsets, getInsets, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getVisibleRect, getWidth, getX, getY, grabFocus, hasFocus, isDoubleBuffered, isFocusCycleRoot, isFocusTraversable, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintChildren, paintComponent, paintImmediately, paintImmediately, processComponentKeyEvent, processFocusEvent, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDoubleBuffered, setFont, setForeground, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setUI, 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, print, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setCursor, setLayout, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, getBackground, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont, getFontMetrics, getForeground, getInputContext, getInputMethodRequests, getLocale, getLocation, getLocationOnScreen, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hide, imageUpdate, 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, printAll, processComponentEvent, processInputMethodEvent, processMouseEvent, remove, removeComponentListener, removeFocusListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, 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(String text,
                 Icon icon)
Creates a menuItem 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()
Notification from the UIFactory that the L&F has changed. Called to replace the UI with the latest version from the UIFactory.
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.
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

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()
Get the AccessibleContext associated with this JComponent
Specified by:
getAccessibleContext in interface Accessible
Overrides:
getAccessibleContext in class JComponent
Returns:
the AccessibleContext of this JComponent

JavaTM 2 Platform
Standard Edition

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