javax.swing

Class JMenuItem

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

public class JMenuItem
extends AbstractButton
implements Accessible, MenuElement

JMenuItem represents element in the menu. It inherits most of its functionality from AbstractButton, however its behavior somewhat varies from it. JMenuItem fire different kinds of events. PropertyChangeEvents are fired when menuItems properties are modified; ChangeEvents are fired when menuItem's state changes and actionEvents are fired when menu item is selected. In addition to this events menuItem also fire MenuDragMouseEvent and MenuKeyEvents when mouse is dragged over the menu item or associated key with menu item is invoked respectively.
See Also:
Serialized Form

Nested Class Summary

protected class
JMenuItem.AccessibleJMenuItem
Provides the accessibility features for the JMenuItem component.

Nested classes/interfaces inherited from class javax.swing.AbstractButton

AbstractButton.AccessibleAbstractButton, AbstractButton.ButtonChangeListener

Nested classes/interfaces inherited from class javax.swing.JComponent

JComponent.AccessibleJComponent

Nested classes/interfaces inherited from class java.awt.Container

Container.AccessibleAWTContainer

Nested classes/interfaces inherited from class java.awt.Component

Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy

Field Summary

Fields inherited from class javax.swing.AbstractButton

BORDER_PAINTED_CHANGED_PROPERTY, 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, MARGIN_CHANGED_PROPERTY, MNEMONIC_CHANGED_PROPERTY, 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, actionListener, changeEvent, changeListener, itemListener, model

Fields inherited from class javax.swing.JComponent

TOOL_TIP_TEXT_KEY, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW, accessibleContext, listenerList, ui

Fields inherited from class java.awt.Component

BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT

Fields inherited from interface java.awt.image.ImageObserver

ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH

Fields inherited from interface javax.swing.SwingConstants

BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST

Constructor Summary

JMenuItem()
Creates a new JMenuItem object.
JMenuItem(String text)
Creates a new JMenuItem with the given label.
JMenuItem(String text, int mnemonic)
Creates a new JMenuItem object.
JMenuItem(String text, Icon icon)
Creates a new JMenuItem with specified text and icon.
JMenuItem(Action action)
Creates a new JMenuItem associated with the specified action.
JMenuItem(Icon icon)
Creates a new JMenuItem with the given icon.

Method Summary

void
addMenuDragMouseListener(MenuDragMouseListener listener)
Adds a MenuDragMouseListener to this menu item.
void
addMenuKeyListener(MenuKeyListener listener)
Adds an MenuKeyListener to this menu item.
protected void
configurePropertiesFromAction(Action action)
Configures menu items' properties from properties of the specified action.
protected PropertyChangeListener
createActionPropertyChangeListener(Action action)
Creates PropertyChangeListener to listen for the changes in action properties.
protected void
fireMenuDragMouseDragged(MenuDragMouseEvent event)
Fires MenuDragMouseEvent to all of the menuItem's MouseInputListeners.
protected void
fireMenuDragMouseEntered(MenuDragMouseEvent event)
Fires MenuDragMouseEvent to all of the menuItem's MouseInputListeners.
protected void
fireMenuDragMouseExited(MenuDragMouseEvent event)
Fires MenuDragMouseEvent to all of the menuItem's MouseInputListeners.
protected void
fireMenuDragMouseReleased(MenuDragMouseEvent event)
This method fires a MenuDragMouseEvent to all the MenuItem's MouseInputListeners.
protected void
fireMenuKeyPressed(MenuKeyEvent event)
This method fires a MenuKeyEvent to all the MenuItem's MenuKeyListeners.
protected void
fireMenuKeyReleased(MenuKeyEvent event)
This method fires a MenuKeyEvent to all the MenuItem's MenuKeyListeners.
protected void
fireMenuKeyTyped(MenuKeyEvent event)
This method fires a MenuKeyEvent to all the MenuItem's MenuKeyListeners.
KeyStroke
getAccelerator()
Return accelerator for this menu item.
AccessibleContext
getAccessibleContext()
Returns the object that provides accessibility features for this JMenuItem component.
Component
getComponent()
Returns reference to the component that will paint this menu item.
MenuDragMouseListener[]
getMenuDragMouseListeners()
Returns all added MenuDragMouseListener objects.
MenuKeyListener[]
getMenuKeyListeners()
Returns all added MenuKeyListener objects.
MenuElement[]
getSubElements()
Method of the MenuElement interface.
String
getUIClassID()
This method returns a name to identify which look and feel class will be the UI delegate for the menuItem.
protected void
init(String text, Icon icon)
Initializes this menu item
boolean
isArmed()
Returns true if button's model is armed and false otherwise.
void
menuSelectionChanged(boolean changed)
Method of the MenuElement interface.
protected String
paramString()
Returns a string describing the attributes for the JMenuItem component, for use in debugging.
void
processKeyEvent(KeyEvent event, MenuElement[] path, MenuSelectionManager manager)
Process key events forwarded from MenuSelectionManager.
void
processMenuDragMouseEvent(MenuDragMouseEvent event)
This method fires MenuDragMouseEvents to registered listeners.
void
processMenuKeyEvent(MenuKeyEvent event)
This method fires MenuKeyEvent to registered listeners.
void
processMouseEvent(MouseEvent ev, MenuElement[] path, MenuSelectionManager manager)
Process mouse events forwarded from MenuSelectionManager.
void
removeMenuDragMouseListener(MenuDragMouseListener listener)
Removes a MenuDragMouseListener from the menuItem's listener list.
void
removeMenuKeyListener(MenuKeyListener listener)
Removes an MenuKeyListener from the menuItem's listener list.
void
setAccelerator(KeyStroke keystroke)
Sets the key combination which invokes the menu item's action listeners without navigating the menu hierarchy.
void
setArmed(boolean armed)
Sets menuItem's "ARMED" property
void
setEnabled(boolean enabled)
Enable or disable menu item.
void
setUI(MenuItemUI ui)
Set the "UI" property of the menu item, which is a look and feel class responsible for handling menuItem's input events and painting it.
void
updateUI()
This method sets this menuItem's UI to the UIManager's default for the current look and feel.

Methods inherited from class javax.swing.AbstractButton

addActionListener, addChangeListener, addImpl, addItemListener, checkHorizontalKey, checkVerticalKey, configurePropertiesFromAction, createActionListener, createActionPropertyChangeListener, createChangeListener, createItemListener, doClick, doClick, fireActionPerformed, fireItemStateChanged, fireStateChanged, getAction, getActionCommand, getActionListeners, getChangeListeners, getDisabledIcon, getDisabledSelectedIcon, getDisplayedMnemonicIndex, getHorizontalAlignment, getHorizontalTextPosition, getIcon, getIconTextGap, getItemListeners, getLabel, getMargin, getMnemonic, getModel, getMultiClickThreshhold, getPressedIcon, getRolloverIcon, getRolloverSelectedIcon, getSelectedIcon, getSelectedObjects, getText, getUI, getVerticalAlignment, getVerticalTextPosition, imageUpdate, init, isBorderPainted, isContentAreaFilled, isFocusPainted, isRolloverEnabled, isSelected, paintBorder, paramString, removeActionListener, removeChangeListener, removeItemListener, setAction, setActionCommand, setBorderPainted, setContentAreaFilled, setDisabledIcon, setDisabledSelectedIcon, setDisplayedMnemonicIndex, setEnabled, setFocusPainted, setHorizontalAlignment, setHorizontalTextPosition, setIcon, setIconTextGap, setLabel, setLayout, setMargin, setMnemonic, setMnemonic, setModel, setMultiClickThreshhold, setPressedIcon, setRolloverEnabled, setRolloverIcon, setRolloverSelectedIcon, setSelected, setSelectedIcon, setText, setUI, setVerticalAlignment, setVerticalTextPosition, updateUI

Methods inherited from class javax.swing.JComponent

addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, extends EventListener> T[] getListeners, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setNextFocusableComponent, setOpaque, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI

Methods inherited from class java.awt.Container

add, add, add, add, add, addContainerListener, addImpl, addNotify, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, extends EventListener> T[] getListeners, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponentZOrder, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, paramString, preferredSize, print, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, removeNotify, setComponentZOrder, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, setLayout, transferFocusDownCycle, update, validate, validateTree

Methods inherited from class java.awt.Component

action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, deliverEvent, disable, disableEvents, dispatchEvent, doLayout, enable, enable, enableEvents, enableInputMethods, extends EventListener> T[] getListeners, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, getAlignmentX, getAlignmentY, getBackground, getBounds, getBounds, getColorModel, getComponentAt, getComponentAt, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeys, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMaximumSize, getMinimumSize, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, invalidate, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusCycleRoot, isFocusOwner, isFocusTraversable, isFocusable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, layout, list, list, list, list, list, locate, location, lostFocus, minimumSize, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paint, paintAll, paramString, postEvent, preferredSize, prepareImage, prepareImage, print, printAll, processComponentEvent, processEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusTraversalKeys, setFocusTraversalKeysEnabled, setFocusable, setFont, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle, update, validate

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Details

JMenuItem

public JMenuItem()
Creates a new JMenuItem object.

JMenuItem

public JMenuItem(String text)
Creates a new JMenuItem with the given label.
Parameters:
text - label for the menu item

JMenuItem

public JMenuItem(String text,
                 int mnemonic)
Creates a new JMenuItem object.
Parameters:
text - label for this menu item
mnemonic - - Single key that can be used with a look-and-feel meta key to activate this menu item. However menu item should be visible on the screen when mnemonic is used.

JMenuItem

public JMenuItem(String text,
                 Icon icon)
Creates a new JMenuItem with specified text and icon. Text is displayed to the left of icon by default.
Parameters:
text - label for this menu item
icon - icon that will be displayed on this menu item

JMenuItem

public JMenuItem(Action action)
Creates a new JMenuItem associated with the specified action.
Parameters:
action - action for this menu item

JMenuItem

public JMenuItem(Icon icon)
Creates a new JMenuItem with the given icon.
Parameters:
icon - Icon that will be displayed on the menu item

Method Details

addMenuDragMouseListener

public void addMenuDragMouseListener(MenuDragMouseListener listener)
Adds a MenuDragMouseListener to this menu item. When mouse is dragged over the menu item the MenuDragMouseEvents will be fired, and these listeners will be called.
Parameters:
listener - The new listener to add

addMenuKeyListener

public void addMenuKeyListener(MenuKeyListener listener)
Adds an MenuKeyListener to this menu item. This listener will be invoked when MenuKeyEvents will be fired by this menu item.
Parameters:
listener - The new listener to add

configurePropertiesFromAction

protected void configurePropertiesFromAction(Action action)
Configures menu items' properties from properties of the specified action. This method overrides configurePropertiesFromAction from AbstractButton to also set accelerator property.
Overrides:
configurePropertiesFromAction in interface AbstractButton
Parameters:
action - action to configure properties from

createActionPropertyChangeListener

protected PropertyChangeListener createActionPropertyChangeListener(Action action)
Creates PropertyChangeListener to listen for the changes in action properties.
Overrides:
createActionPropertyChangeListener in interface AbstractButton
Parameters:
action - action to listen to for property changes
Returns:
$PropertyChangeListener$ Listener that listens to changes in action properties.

fireMenuDragMouseDragged

protected void fireMenuDragMouseDragged(MenuDragMouseEvent event)
Fires MenuDragMouseEvent to all of the menuItem's MouseInputListeners.
Parameters:
event - The event signifying that mouse is being dragged over the menuItem

fireMenuDragMouseEntered

protected void fireMenuDragMouseEntered(MenuDragMouseEvent event)
Fires MenuDragMouseEvent to all of the menuItem's MouseInputListeners.
Parameters:
event - The event signifying that mouse entered menuItem while it was dragged

fireMenuDragMouseExited

protected void fireMenuDragMouseExited(MenuDragMouseEvent event)
Fires MenuDragMouseEvent to all of the menuItem's MouseInputListeners.
Parameters:
event - The event signifying that mouse has exited menu item, while it was dragged

fireMenuDragMouseReleased

protected void fireMenuDragMouseReleased(MenuDragMouseEvent event)
This method fires a MenuDragMouseEvent to all the MenuItem's MouseInputListeners.
Parameters:
event - The event signifying that mouse was released while it was dragged over the menuItem

fireMenuKeyPressed

protected void fireMenuKeyPressed(MenuKeyEvent event)
This method fires a MenuKeyEvent to all the MenuItem's MenuKeyListeners.
Parameters:
event - The event signifying that key associated with this menu was pressed

fireMenuKeyReleased

protected void fireMenuKeyReleased(MenuKeyEvent event)
This method fires a MenuKeyEvent to all the MenuItem's MenuKeyListeners.
Parameters:
event - The event signifying that key associated with this menu was released

fireMenuKeyTyped

protected void fireMenuKeyTyped(MenuKeyEvent event)
This method fires a MenuKeyEvent to all the MenuItem's MenuKeyListeners.
Parameters:
event - The event signifying that key associated with this menu was typed. The key is typed when it was pressed and then released