javax.swing

Class JMenuItem

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.
Nested Class Summary
protected classJMenuItem.AccessibleJMenuItem
Provides the accessibility features for the JMenuItem component.
Constructor Summary
JMenuItem()
Creates a new JMenuItem object.
JMenuItem(Icon icon)
Creates a new JMenuItem with the given icon.
JMenuItem(String text)
Creates a new JMenuItem with the given label.
JMenuItem(Action action)
Creates a new JMenuItem associated with the specified action.
JMenuItem(String text, Icon icon)
Creates a new JMenuItem with specified text and icon.
JMenuItem(String text, int mnemonic)
Creates a new JMenuItem object.
Method Summary
voidaddMenuDragMouseListener(MenuDragMouseListener listener)
Adds a MenuDragMouseListener to this menu item.
voidaddMenuKeyListener(MenuKeyListener listener)
Adds an MenuKeyListener to this menu item.
protected voidconfigurePropertiesFromAction(Action action)
Configures menu items' properties from properties of the specified action.
protected PropertyChangeListenercreateActionPropertyChangeListener(Action action)
Creates PropertyChangeListener to listen for the changes in action properties.
protected voidfireMenuDragMouseDragged(MenuDragMouseEvent event)
Fires MenuDragMouseEvent to all of the menuItem's MouseInputListeners.
protected voidfireMenuDragMouseEntered(MenuDragMouseEvent event)
Fires MenuDragMouseEvent to all of the menuItem's MouseInputListeners.
protected voidfireMenuDragMouseExited(MenuDragMouseEvent event)
Fires MenuDragMouseEvent to all of the menuItem's MouseInputListeners.
protected voidfireMenuDragMouseReleased(MenuDragMouseEvent event)
This method fires a MenuDragMouseEvent to all the MenuItem's MouseInputListeners.
protected voidfireMenuKeyPressed(MenuKeyEvent event)
This method fires a MenuKeyEvent to all the MenuItem's MenuKeyListeners.
protected voidfireMenuKeyReleased(MenuKeyEvent event)
This method fires a MenuKeyEvent to all the MenuItem's MenuKeyListeners.
protected voidfireMenuKeyTyped(MenuKeyEvent event)
This method fires a MenuKeyEvent to all the MenuItem's MenuKeyListeners.
KeyStrokegetAccelerator()
Return accelerator for this menu item.
AccessibleContextgetAccessibleContext()
Returns the object that provides accessibility features for this JMenuItem component.
ComponentgetComponent()
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.
StringgetUIClassID()
This method returns a name to identify which look and feel class will be the UI delegate for the menuItem.
protected voidinit(String text, Icon icon)
Initializes this menu item
booleanisArmed()
Returns true if button's model is armed and false otherwise.
voidmenuSelectionChanged(boolean changed)
Method of the MenuElement interface.
protected StringparamString()
Returns a string describing the attributes for the JMenuItem component, for use in debugging.
voidprocessKeyEvent(KeyEvent event, MenuElement[] path, MenuSelectionManager manager)
Process key events forwarded from MenuSelectionManager.
voidprocessMenuDragMouseEvent(MenuDragMouseEvent event)
This method fires MenuDragMouseEvents to registered listeners.
voidprocessMenuKeyEvent(MenuKeyEvent event)
This method fires MenuKeyEvent to registered listeners.
voidprocessMouseEvent(MouseEvent ev, MenuElement[] path, MenuSelectionManager manager)
Process mouse events forwarded from MenuSelectionManager.
voidremoveMenuDragMouseListener(MenuDragMouseListener listener)
Removes a MenuDragMouseListener from the menuItem's listener list.
voidremoveMenuKeyListener(MenuKeyListener listener)
Removes an MenuKeyListener from the menuItem's listener list.
voidsetAccelerator(KeyStroke keystroke)
Sets the key combination which invokes the menu item's action listeners without navigating the menu hierarchy.
voidsetArmed(boolean armed)
Sets menuItem's "ARMED" property
voidsetEnabled(boolean enabled)
Enable or disable menu item.
voidsetUI(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.
voidupdateUI()
This method sets this menuItem's UI to the UIManager's default for the current look and feel.

Constructor Detail

JMenuItem

public JMenuItem()
Creates a new JMenuItem object.

JMenuItem

public JMenuItem(Icon icon)
Creates a new JMenuItem with the given icon.

Parameters: icon Icon that will be displayed on the menu item

JMenuItem

public JMenuItem(String text)
Creates a new JMenuItem with the given label.

Parameters: text label for the 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(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(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.

Method Detail

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.

Parameters: action action to configure properties from

createActionPropertyChangeListener

protected PropertyChangeListener createActionPropertyChangeListener(Action action)
Creates PropertyChangeListener to listen for the changes in action properties.

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

getAccelerator

public KeyStroke getAccelerator()
Return accelerator for this menu item.

Returns: $KeyStroke$ accelerator for this menu item.

getAccessibleContext

public AccessibleContext getAccessibleContext()
Returns the object that provides accessibility features for this JMenuItem component.

Returns: The accessible context (an instance of {@link AccessibleJMenuItem}).

getComponent

public Component getComponent()
Returns reference to the component that will paint this menu item.

Returns: $Component$ Component that will paint this menu item. Simply returns reference to this menu item.

getMenuDragMouseListeners

public MenuDragMouseListener[] getMenuDragMouseListeners()
Returns all added MenuDragMouseListener objects.

Returns: an array of listeners

Since: 1.4

getMenuKeyListeners

public MenuKeyListener[] getMenuKeyListeners()
Returns all added MenuKeyListener objects.

Returns: an array of listeners

Since: 1.4

getSubElements

public MenuElement[] getSubElements()
Method of the MenuElement interface.

Returns: $MenuElement[]$ Returns array of sub-components for this menu item. By default menuItem doesn't have any subcomponents and so empty array is returned instead.

getUIClassID

public String getUIClassID()
This method returns a name to identify which look and feel class will be the UI delegate for the menuItem.

Returns: The Look and Feel classID. "MenuItemUI"

init

protected void init(String text, Icon icon)
Initializes this menu item

Parameters: text label for this menu item icon icon to be displayed for this menu item

isArmed

public boolean isArmed()
Returns true if button's model is armed and false otherwise. The button model is armed if menu item has focus or it is selected.

Returns: $boolean$ true if button's model is armed and false otherwise

menuSelectionChanged

public void menuSelectionChanged(boolean changed)
Method of the MenuElement interface. This method is invoked by MenuSelectionManager when selection of this menu item has changed. If this menu item was selected then arm it's model, and disarm the model otherwise. The menu item is considered to be selected, and thus highlighted when its model is armed.

Parameters: changed indicates selection status of this menu item. If changed is true then menu item is selected and deselected otherwise.

paramString

protected String paramString()
Returns a string describing the attributes for the JMenuItem component, for use in debugging. The return value is guaranteed to be non-null, but the format of the string may vary between implementations.

Returns: A string describing the attributes of the JMenuItem.

processKeyEvent

public void processKeyEvent(KeyEvent event, MenuElement[] path, MenuSelectionManager manager)
Process key events forwarded from MenuSelectionManager.

Parameters: event event forwarded from MenuSelectionManager path path to the menu element from which event was generated manager MenuSelectionManager for the current menu hierarchy

processMenuDragMouseEvent

public void processMenuDragMouseEvent(MenuDragMouseEvent event)
This method fires MenuDragMouseEvents to registered listeners. Different types of MenuDragMouseEvents are fired depending on the observed mouse event.

Parameters: event Mouse

processMenuKeyEvent

public void processMenuKeyEvent(MenuKeyEvent event)
This method fires MenuKeyEvent to registered listeners. Different types of MenuKeyEvents are fired depending on the observed key event.

Parameters: event DOCUMENT ME!

processMouseEvent

public void processMouseEvent(MouseEvent ev, MenuElement[] path, MenuSelectionManager manager)
Process mouse events forwarded from MenuSelectionManager.

Parameters: ev event forwarded from MenuSelectionManager path path to the menu element from which event was generated manager MenuSelectionManager for the current menu hierarchy

removeMenuDragMouseListener

public void removeMenuDragMouseListener(MenuDragMouseListener listener)
Removes a MenuDragMouseListener from the menuItem's listener list.

Parameters: listener The listener to remove

removeMenuKeyListener

public void removeMenuKeyListener(MenuKeyListener listener)
Removes an MenuKeyListener from the menuItem's listener list.

Parameters: listener The listener to remove

setAccelerator

public void setAccelerator(KeyStroke keystroke)
Sets the key combination which invokes the menu item's action listeners without navigating the menu hierarchy. Note that when the keyboard accelerator is typed, it will work whether or not the menu is currently displayed.

Parameters: keystroke accelerator for this menu item.

setArmed

public void setArmed(boolean armed)
Sets menuItem's "ARMED" property

Parameters: armed DOCUMENT ME!

setEnabled

public void setEnabled(boolean enabled)
Enable or disable menu item. When menu item is disabled, its text and icon are grayed out if they exist.

Parameters: enabled if true enable menu item, and disable otherwise.

setUI

public 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.

Parameters: ui The new "UI" property

updateUI

public void updateUI()
This method sets this menuItem's UI to the UIManager's default for the current look and feel.