W3cubDocs

/OpenJDK 21

Class BasicMenuItemUI

Direct Known Subclasses:
BasicCheckBoxMenuItemUI, BasicMenuUI, BasicRadioButtonMenuItemUI, SynthMenuItemUI
public class BasicMenuItemUI extends MenuItemUI
BasicMenuItem implementation

Nested Class Summary

Modifier and Type Class Description
protected class  BasicMenuItemUI.MouseInputHandler
Deprecated, for removal: This API element is subject to removal in a future version.

Field Summary

Modifier and Type Field Description
protected String acceleratorDelimiter
Accelerator delimiter string, such as '+' in 'Ctrl+C'.
protected Font acceleratorFont
The accelerator font.
protected Color acceleratorForeground
The color of the accelerator foreground.
protected Color acceleratorSelectionForeground
The color of the accelerator selection.
protected Icon arrowIcon
The arrow icon.
protected Icon checkIcon
The check icon.
protected int defaultTextIconGap
The gap between the text and the icon.
protected Color disabledForeground
The color of the disabled foreground.
protected MenuDragMouseListener menuDragMouseListener
The instance of MenuDragMouseListener.
protected JMenuItem menuItem
The instance of JMenuItem.
protected MenuKeyListener menuKeyListener
The instance of MenuKeyListener.
protected MouseInputListener mouseInputListener
The instance of MouseInputListener.
protected boolean oldBorderPainted
The value represents if the old border is painted.
protected PropertyChangeListener propertyChangeListener
PropertyChangeListener returned from createPropertyChangeListener.
protected Color selectionBackground
The color of the selection background.
protected Color selectionForeground
The color of the selection foreground.

Constructor Summary

Constructor Description
BasicMenuItemUI()
Constructs a BasicMenuItemUI.

Method Summary

Modifier and Type Method Description
protected MenuDragMouseListener createMenuDragMouseListener(JComponent c)
Returns an instance of MenuDragMouseListener.
protected MenuKeyListener createMenuKeyListener(JComponent c)
Returns an instance of MenuKeyListener.
protected MouseInputListener createMouseInputListener(JComponent c)
Returns an instance of MouseInputListener.
protected PropertyChangeListener createPropertyChangeListener(JComponent c)
Creates a PropertyChangeListener which will be added to the menu item.
static ComponentUI createUI(JComponent c)
Returns a new instance of BasicMenuItemUI.
protected void doClick(MenuSelectionManager msm)
Call this method when a menu item is to be activated.
MenuElement[] getPath()
Returns a menu element path.
protected Dimension getPreferredMenuItemSize(JComponent c, Icon checkIcon, Icon arrowIcon, int defaultTextIconGap)
Returns the preferred size of a menu item.
protected String getPropertyPrefix()
Returns a property prefix.
protected void installComponents(JMenuItem menuItem)
Registers the subcomponents of the menu.
protected void installDefaults()
Installs default properties.
protected void installKeyboardActions()
Registers keyboard action.
protected void installListeners()
Registers listeners.
protected void paintBackground(Graphics g, JMenuItem menuItem, Color bgColor)
Draws the background of the menu item.
protected void paintMenuItem(Graphics g, JComponent c, Icon checkIcon, Icon arrowIcon, Color background, Color foreground, int defaultTextIconGap)
Paints a menu item.
protected void paintText(Graphics g, JMenuItem menuItem, Rectangle textRect, String text)
Renders the text of the current menu item.
protected void uninstallComponents(JMenuItem menuItem)
Unregisters components.
protected void uninstallDefaults()
Uninstalls default properties.
protected void uninstallKeyboardActions()
Unregisters keyboard actions.
protected void uninstallListeners()
Unregisters listeners.
void update(Graphics g, JComponent c)
We draw the background in paintMenuItem() so override update (which fills the background of opaque components by default) to just call paint().

Methods declared in class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Details

selectionBackground

protected Color selectionBackground
The color of the selection background.

selectionForeground

protected Color selectionForeground
The color of the selection foreground.

disabledForeground

protected Color disabledForeground
The color of the disabled foreground.

acceleratorForeground

protected Color acceleratorForeground
The color of the accelerator foreground.

acceleratorSelectionForeground

protected Color acceleratorSelectionForeground
The color of the accelerator selection.

acceleratorDelimiter

protected String acceleratorDelimiter
Accelerator delimiter string, such as '+' in 'Ctrl+C'.
Since:
1.7

defaultTextIconGap

protected int defaultTextIconGap
The gap between the text and the icon.

acceleratorFont

protected Font acceleratorFont
The accelerator font.

mouseInputListener

protected MouseInputListener mouseInputListener
The instance of MouseInputListener.

propertyChangeListener

protected PropertyChangeListener propertyChangeListener
PropertyChangeListener returned from createPropertyChangeListener. You should not need to access this field, rather if you want to customize the PropertyChangeListener override createPropertyChangeListener.
Since:
1.6
See Also:

arrowIcon

protected Icon arrowIcon
The arrow icon.

checkIcon

protected Icon checkIcon
The check icon.

oldBorderPainted

protected boolean oldBorderPainted
The value represents if the old border is painted.

Constructor Details

BasicMenuItemUI

public BasicMenuItemUI()
Constructs a BasicMenuItemUI.

Method Details

createUI

public static ComponentUI createUI(JComponent c)
Returns a new instance of BasicMenuItemUI.
Parameters:
c - a component
Returns:
a new instance of BasicMenuItemUI

installDefaults

protected void installDefaults()
Installs default properties.

installComponents

protected void installComponents(JMenuItem menuItem)
Registers the subcomponents of the menu.
Parameters:
menuItem - a menu item
Since:
1.3

getPropertyPrefix

protected String getPropertyPrefix()
Returns a property prefix.
Returns:
a property prefix

installListeners

protected void installListeners()
Registers listeners.

installKeyboardActions

protected void installKeyboardActions()
Registers keyboard action.

uninstallDefaults

protected void uninstallDefaults()
Uninstalls default properties.

uninstallComponents

protected void uninstallComponents(JMenuItem menuItem)
Unregisters components.
Parameters:
menuItem - a menu item
Since:
1.3

uninstallListeners

protected void uninstallListeners()
Unregisters listeners.

uninstallKeyboardActions

protected void uninstallKeyboardActions()
Unregisters keyboard actions.

createMouseInputListener

protected MouseInputListener createMouseInputListener(JComponent c)
Returns an instance of MouseInputListener.
Parameters:
c - a component
Returns:
an instance of MouseInputListener

createMenuDragMouseListener

protected MenuDragMouseListener createMenuDragMouseListener(JComponent c)
Returns an instance of MenuDragMouseListener.
Parameters:
c - a component
Returns:
an instance of MenuDragMouseListener

createMenuKeyListener

protected MenuKeyListener createMenuKeyListener(JComponent c)
Returns an instance of MenuKeyListener.
Parameters:
c - a component
Returns:
an instance of MenuKeyListener

createPropertyChangeListener

protected PropertyChangeListener createPropertyChangeListener(JComponent c)
Creates a PropertyChangeListener which will be added to the menu item. If this method returns null then it will not be added to the menu item.
Parameters:
c - a component
Returns:
an instance of a PropertyChangeListener or null
Since:
1.6

getPreferredMenuItemSize

protected Dimension getPreferredMenuItemSize(JComponent c, Icon checkIcon, Icon arrowIcon, int defaultTextIconGap)
Returns the preferred size of a menu item.
Parameters:
c - a component
checkIcon - a check icon
arrowIcon - an arrow icon
defaultTextIconGap - a gap between a text and an icon
Returns:
the preferred size of a menu item

update

public void update(Graphics g, JComponent c)
We draw the background in paintMenuItem() so override update (which fills the background of opaque components by default) to just call paint().
Overrides:
update in class ComponentUI
Parameters:
g - the Graphics context in which to paint
c - the component being painted; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components
See Also:

paintMenuItem

protected void paintMenuItem(Graphics g, JComponent c, Icon checkIcon, Icon arrowIcon, Color background, Color foreground, int defaultTextIconGap)
Paints a menu item.
Parameters:
g - an instance of Graphics
c - a component
checkIcon - a check icon
arrowIcon - an arrow icon
background - a background color
foreground - a foreground color
defaultTextIconGap - a gap between a text and an icon

paintBackground

protected void paintBackground(Graphics g, JMenuItem menuItem, Color bgColor)
Draws the background of the menu item.
Parameters:
g - the paint graphics
menuItem - menu item to be painted
bgColor - selection background color
Since:
1.4

paintText

protected void paintText(Graphics g, JMenuItem menuItem, Rectangle textRect, String text)
Renders the text of the current menu item.
Parameters:
g - graphics context
menuItem - menu item to render
textRect - bounding rectangle for rendering the text
text - string to render
Since:
1.4

getPath

public MenuElement[] getPath()
Returns a menu element path.
Returns:
a menu element path

doClick

protected void doClick(MenuSelectionManager msm)
Call this method when a menu item is to be activated. This method handles some of the details of menu item activation such as clearing the selected path and messaging the JMenuItem's doClick() method.
Parameters:
msm - A MenuSelectionManager. The visual feedback and internal bookkeeping tasks are delegated to this MenuSelectionManager. If null is passed as this argument, the MenuSelectionManager.defaultManager is used.
Since:
1.4
See Also:

© 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/plaf/basic/BasicMenuItemUI.html