Class BasicMenuItemUI

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

BasicMenuItem implementation

Nested Class Summary

Nested Classes
Modifier and Type Class Description
protected class  BasicMenuItemUI.MouseInputHandler

Mouse input handler

Field Summary

Fields
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

Constructors
Constructor Description
BasicMenuItemUI()

Method Summary

All Methods Static Methods Instance Methods Concrete Methods
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)
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 javax.swing.plaf.ComponentUI

contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior, getMaximumSize, getMinimumSize, getPreferredSize, installUI, paint, uninstallUI

Methods declared in class java.lang.Object

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

Field Detail

menuItem

protected JMenuItem menuItem

The instance of JMenuItem.

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.

menuDragMouseListener

protected MenuDragMouseListener menuDragMouseListener

The instance of MenuDragMouseListener.

menuKeyListener

protected MenuKeyListener menuKeyListener

The instance of MenuKeyListener.

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:
createPropertyChangeListener(javax.swing.JComponent)

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 Detail

BasicMenuItemUI

public BasicMenuItemUI()

Method Detail

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)
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:
ComponentUI.paint(java.awt.Graphics, javax.swing.JComponent), JComponent.paintComponent(java.awt.Graphics)

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:
MenuSelectionManager, AbstractButton.doClick(int)