ImageObserver
, ItemSelectable
, MenuContainer
, Serializable
, Accessible
, MenuElement
, SwingConstants
JCheckBoxMenuItem
, JMenu
, JRadioButtonMenuItem
@JavaBean(defaultProperty="UIClassID", description="An item which can be selected in a menu.") 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 Action
s. 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
.
Modifier and Type | Class | Description |
---|---|---|
protected class |
JMenuItem.AccessibleJMenuItem |
This class implements accessibility support for the JMenuItem class. |
AbstractButton.AccessibleAbstractButton, AbstractButton.ButtonChangeListener
JComponent.AccessibleJComponent
Container.AccessibleAWTContainer
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
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
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
Constructor | Description |
---|---|
JMenuItem() |
Creates a JMenuItem with no set text or icon. |
JMenuItem |
Creates a JMenuItem with the specified text. |
JMenuItem |
Creates a JMenuItem with the specified text and keyboard mnemonic. |
JMenuItem |
Creates a JMenuItem with the specified text and icon. |
JMenuItem |
Creates a menu item whose properties are taken from the specified Action . |
JMenuItem |
Creates a JMenuItem with the specified icon. |
Modifier and Type | Method | Description |
---|---|---|
protected void |
actionPropertyChanged |
Updates the button's state in response to property changes in the associated action. |
void |
addMenuDragMouseListener |
Adds a MenuDragMouseListener to the menu item. |
void |
addMenuKeyListener |
Adds a MenuKeyListener to the menu item. |
protected void |
configurePropertiesFromAction |
Sets the properties on this button to match those in the specified Action . |
protected void |
fireMenuDragMouseDragged |
Notifies all listeners that have registered interest for notification on this event type. |
protected void |
fireMenuDragMouseEntered |
Notifies all listeners that have registered interest for notification on this event type. |
protected void |
fireMenuDragMouseExited |
Notifies all listeners that have registered interest for notification on this event type. |
protected void |
fireMenuDragMouseReleased |
Notifies all listeners that have registered interest for notification on this event type. |
protected void |
fireMenuKeyPressed |
Notifies all listeners that have registered interest for notification on this event type. |
protected void |
fireMenuKeyReleased |
Notifies all listeners that have registered interest for notification on this event type. |
protected void |
fireMenuKeyTyped |
Notifies all listeners that have registered interest for notification on this event type. |
KeyStroke |
getAccelerator() |
Returns the KeyStroke which serves as an accelerator for the menu item. |
AccessibleContext |
getAccessibleContext() |
Returns the AccessibleContext associated with this JMenuItem . |
Component |
getComponent() |
Returns the java.awt.Component used to paint this object. |
MenuDragMouseListener[] |
getMenuDragMouseListeners() |
Returns an array of all the MenuDragMouseListener s added to this JMenuItem with addMenuDragMouseListener(). |
MenuKeyListener[] |
getMenuKeyListeners() |
Returns an array of all the MenuKeyListener s 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 |
Initializes the menu item with the specified text and icon. |
boolean |
isArmed() |
Returns whether the menu item is "armed". |
void |
menuSelectionChanged |
Called by the MenuSelectionManager when the MenuElement is selected or unselected. |
protected String |
paramString() |
Returns a string representation of this JMenuItem . |
void |
processKeyEvent |
Processes a key event forwarded from the MenuSelectionManager and changes the menu selection, if necessary, by using MenuSelectionManager 's API. |
void |
processMenuDragMouseEvent |
Handles mouse drag in a menu. |
void |
processMenuKeyEvent |
Handles a keystroke in a menu. |
void |
processMouseEvent |
Processes a mouse event forwarded from the MenuSelectionManager and changes the menu selection, if necessary, by using the MenuSelectionManager 's API. |
void |
removeMenuDragMouseListener |
Removes a MenuDragMouseListener from the menu item. |
void |
removeMenuKeyListener |
Removes a MenuKeyListener from the menu item. |
void |
setAccelerator |
Sets the key combination which invokes the menu item's action listeners without navigating the menu hierarchy. |
void |
setArmed |
Identifies the menu item as "armed". |
void |
setEnabled |
Enables or disables the menu item. |
void |
setModel |
Sets the model that this button represents. |
void |
setUI |
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, setVerticalTextPosition
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, 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, update
add, 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, validateTree
action, 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, 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, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
public JMenuItem()
JMenuItem
with no set text or icon.public JMenuItem(Icon icon)
JMenuItem
with the specified icon.icon
- the icon of the JMenuItem
public JMenuItem(String text)
JMenuItem
with the specified text.text
- the text of the JMenuItem
public JMenuItem(Action a)
Action
.a
- the action of the JMenuItem
public JMenuItem(String text, Icon icon)
JMenuItem
with the specified text and icon.text
- the text of the JMenuItem
icon
- the icon of the JMenuItem
public JMenuItem(String text, int mnemonic)
JMenuItem
with the specified text and keyboard mnemonic.text
- the text of the JMenuItem
mnemonic
- the keyboard mnemonic for the JMenuItem
public void setModel(ButtonModel newModel)
setModel
in class AbstractButton
newModel
- the new ButtonModel
protected void init(String text, Icon icon)
init
in class AbstractButton
text
- the text of the JMenuItem
icon
- the icon of the JMenuItem
@BeanProperty(hidden=true, visualUpdate=true, description="The UI object that implements the LookAndFeel.") public void setUI(MenuItemUI ui)
ui
- the JMenuItemUI
L&F objectpublic void updateUI()
updateUI
in class AbstractButton
@BeanProperty(bound=false) public String getUIClassID()
getUIClassID
in class JComponent
@BeanProperty(bound=false, hidden=true, description="Mouse release will fire an action event") public void setArmed(boolean b)
b
- true to arm the menu item so it can be selectedpublic boolean isArmed()
@BeanProperty(preferred=true, description="The enabled state of the component.") public void setEnabled(boolean b)
setEnabled
in class AbstractButton
b
- true to enable the item@BeanProperty(preferred=true, description="The keystroke combination which will invoke the JMenuItem\'s actionlisteners without navigating the menu hierarchy") 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 AbstractButton
a
- the Action
from which to get the properties, or null
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 AbstractButton
action
- the Action
associated with this buttonpropertyName
- the name of the property that changedpublic 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 MenuElement
e
- a MouseEvent
path
- the MenuElement
path arraymanager
- the MenuSelectionManager
public 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 MenuElement
e
- a KeyEvent
path
- the MenuElement
path arraymanager
- the MenuSelectionManager
public void processMenuDragMouseEvent(MenuDragMouseEvent e)
e
- a MenuDragMouseEvent
objectpublic void processMenuKeyEvent(MenuKeyEvent e)
e
- a MenuKeyEvent
objectprotected void fireMenuDragMouseEntered(MenuDragMouseEvent event)
event
- a MenuMouseDragEvent
protected void fireMenuDragMouseExited(MenuDragMouseEvent event)
event
- a MenuDragMouseEvent
protected void fireMenuDragMouseDragged(MenuDragMouseEvent event)
event
- a MenuDragMouseEvent
protected void fireMenuDragMouseReleased(MenuDragMouseEvent event)
event
- a MenuDragMouseEvent
protected void fireMenuKeyPressed(MenuKeyEvent event)
event
- a MenuKeyEvent
protected void fireMenuKeyReleased(MenuKeyEvent event)
event
- a MenuKeyEvent
protected void fireMenuKeyTyped(MenuKeyEvent event)
event
- a MenuKeyEvent
@BeanProperty(bound=false) public MenuElement[] getSubElements()
getSubElements
in interface MenuElement
MenuElement
spublic 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 MenuElement
Component
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 removed@BeanProperty(bound=false) public MenuDragMouseListener[] getMenuDragMouseListeners()
MenuDragMouseListener
s added to this JMenuItem with addMenuDragMouseListener().MenuDragMouseListener
s 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 removed@BeanProperty(bound=false) public MenuKeyListener[] getMenuKeyListeners()
MenuKeyListener
s added to this JMenuItem with addMenuKeyListener().MenuKeyListener
s 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 AbstractButton
JMenuItem
@BeanProperty(bound=false) public AccessibleContext getAccessibleContext()
AccessibleContext
associated with this JMenuItem
. For JMenuItem
s, the AccessibleContext
takes the form of an AccessibleJMenuItem
. A new AccessibleJMenuItme instance is created if necessary.getAccessibleContext
in interface Accessible
getAccessibleContext
in class Component
AccessibleJMenuItem
that serves as the AccessibleContext
of this JMenuItem
© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.desktop/javax/swing/JMenuItem.html