javax.swing.plaf.basic
Class BasicMenuItemUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.ButtonUI
          extended by javax.swing.plaf.MenuItemUI
              extended by javax.swing.plaf.basic.BasicMenuItemUI
Direct Known Subclasses:
BasicCheckBoxMenuItemUI, BasicMenuUI, BasicRadioButtonMenuItemUI

public class BasicMenuItemUI
extends MenuItemUI

UI Delegate for JMenuItem.


Nested Class Summary
protected  class BasicMenuItemUI.MouseInputHandler
          This class handles mouse events occuring inside the menu item.
 
Field Summary
protected  Font acceleratorFont
          Font to be used when displaying menu item's accelerator.
protected  Color acceleratorForeground
          Color to be used when displaying menu item's accelerator.
protected  Color acceleratorSelectionForeground
          Color to be used when displaying menu item's accelerator when menu item is selected.
protected  Icon arrowIcon
          Icon that is displayed after the text to indicated that this menu contains submenu.
protected  Icon checkIcon
          Icon that is displayed before the text.
protected  int defaultTextIconGap
          Number of spaces between icon and text.
protected  Color disabledForeground
          Color of the text when menu item is disabled
protected  MenuDragMouseListener menuDragMouseListener
          The menu Drag mouse listener listening to the menu item.
protected  JMenuItem menuItem
          The menu item itself
protected  MenuKeyListener menuKeyListener
          Menu Key listener listening to the menu item.
protected  MouseInputListener mouseInputListener
          mouse input listener listening to menu item.
protected  boolean oldBorderPainted
          Indicates if border should be painted
protected  Color selectionBackground
          Color of text that is used when menu item is selected
protected  Color selectionForeground
          Color of the text that is used when menu item is selected.
 
Constructor Summary
BasicMenuItemUI()
          Creates a new BasicMenuItemUI object.
 
Method Summary
protected  MenuDragMouseListener createMenuDragMouseListener(JComponent c)
          Create MenuDragMouseListener to listen for mouse dragged events.
protected  MenuKeyListener createMenuKeyListener(JComponent c)
          Creates MenuKeyListener to listen to key events occuring when menu item is visible on the screen.
protected  MouseInputListener createMouseInputListener(JComponent c)
          Handles mouse input events occuring for this menu item
static ComponentUI createUI(JComponent c)
          Factory method to create a BasicMenuItemUI for the given JComponent, which should be a JMenuItem.
protected  void doClick(MenuSelectionManager msm)
          Programatically clicks menu item.
 Dimension getMaximumSize(JComponent c)
          Returns maximum size for the specified menu item
 Dimension getMinimumSize(JComponent c)
          Returns minimum size for the specified menu item
 MenuElement[] getPath()
          Returns path to this menu item.
protected  Dimension getPreferredMenuItemSize(JComponent c, Icon checkIcon, Icon arrowIcon, int defaultTextIconGap)
          Returns preferred size for the given menu item.
 Dimension getPreferredSize(JComponent c)
          Returns preferred size of the given component
protected  String getPropertyPrefix()
          Returns the prefix for entries in the UIDefaults table.
protected  void installComponents(JMenuItem menuItem)
          This method installs the components for this JMenuItem.
protected  void installDefaults()
          This method installs the defaults that are defined in the Basic look and feel for this JMenuItem.
protected  void installKeyboardActions()
          This method installs the keyboard actions for this JMenuItem.
protected  void installListeners()
          This method installs the listeners for the JMenuItem.
 void installUI(JComponent c)
          Installs and initializes all fields for this UI delegate.
 void paint(Graphics g, JComponent c)
          Paints given menu item using specified graphics context
protected  void paintBackground(Graphics g, JMenuItem menuItem, Color bgColor)
          Paints background of the menu item
protected  void paintMenuItem(Graphics g, JComponent c, Icon checkIcon, Icon arrowIcon, Color background, Color foreground, int defaultTextIconGap)
          Paints specified menu item
protected  void paintText(Graphics g, JMenuItem menuItem, Rectangle textRect, String text)
          Paints label for the given menu item
protected  void uninstallComponents(JMenuItem menuItem)
          This method uninstalls the components for this JMenuItem.
protected  void uninstallDefaults()
          This method uninstalls the defaults and sets any objects created during install to null
protected  void uninstallKeyboardActions()
          Uninstalls any keyboard actions.
protected  void uninstallListeners()
          Unregisters all the listeners that this UI delegate was using.
 void uninstallUI(JComponent c)
          Performs the opposite of installUI.
 void update(Graphics g, JComponent c)
          This method calls paint.
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

acceleratorFont

protected Font acceleratorFont
Font to be used when displaying menu item's accelerator.


acceleratorForeground

protected Color acceleratorForeground
Color to be used when displaying menu item's accelerator.


acceleratorSelectionForeground

protected Color acceleratorSelectionForeground
Color to be used when displaying menu item's accelerator when menu item is selected.


arrowIcon

protected Icon arrowIcon
Icon that is displayed after the text to indicated that this menu contains submenu.


checkIcon

protected Icon checkIcon
Icon that is displayed before the text. This icon is only used in JCheckBoxMenuItem or JRadioBoxMenuItem.


defaultTextIconGap

protected int defaultTextIconGap
Number of spaces between icon and text.


disabledForeground

protected Color disabledForeground
Color of the text when menu item is disabled


menuDragMouseListener

protected MenuDragMouseListener menuDragMouseListener
The menu Drag mouse listener listening to the menu item.


menuItem

protected JMenuItem menuItem
The menu item itself


menuKeyListener

protected MenuKeyListener menuKeyListener
Menu Key listener listening to the menu item.


mouseInputListener

protected MouseInputListener mouseInputListener
mouse input listener listening to menu item.


oldBorderPainted

protected boolean oldBorderPainted
Indicates if border should be painted


selectionBackground

protected Color selectionBackground
Color of text that is used when menu item is selected


selectionForeground

protected Color selectionForeground
Color of the text that is used when menu item is selected.

Constructor Detail

BasicMenuItemUI

public BasicMenuItemUI()
Creates a new BasicMenuItemUI object.

Method Detail

createMenuDragMouseListener

protected MenuDragMouseListener createMenuDragMouseListener(JComponent c)
Create MenuDragMouseListener to listen for mouse dragged events.

Parameters:
c - menu item to listen to
Returns:
The MenuDragMouseListener

createMenuKeyListener

protected MenuKeyListener createMenuKeyListener(JComponent c)
Creates MenuKeyListener to listen to key events occuring when menu item is visible on the screen.

Parameters:
c - menu item to listen to
Returns:
The MenuKeyListener

createMouseInputListener

protected MouseInputListener createMouseInputListener(JComponent c)
Handles mouse input events occuring for this menu item

Parameters:
c - menu item to listen to
Returns:
The MouseInputListener

createUI

public static ComponentUI createUI(JComponent c)
Factory method to create a BasicMenuItemUI for the given JComponent, which should be a JMenuItem.

Parameters:
c - The JComponent a UI is being created for.
Returns:
A BasicMenuItemUI for the JComponent.

doClick

protected void doClick(MenuSelectionManager msm)
Programatically clicks menu item.

Parameters:
msm - MenuSelectionManager for the menu hierarchy

getMaximumSize

public Dimension getMaximumSize(JComponent c)
Returns maximum size for the specified menu item

Overrides:
getMaximumSize in class ComponentUI
Parameters:
c - component for which to get maximum size
Returns:
Maximum size for the specified menu item.

getMinimumSize

public Dimension getMinimumSize(JComponent c)
Returns minimum size for the specified menu item

Overrides:
getMinimumSize in class ComponentUI
Parameters:
c - component for which to get minimum size
Returns:
Minimum size for the specified menu item.

getPath

public MenuElement[] getPath()
Returns path to this menu item.

Returns:
$MenuElement[]$ Returns array of menu elements that constitute a path to this menu item.

getPreferredMenuItemSize

protected Dimension getPreferredMenuItemSize(JComponent c,
                                             Icon checkIcon,
                                             Icon arrowIcon,
                                             int defaultTextIconGap)
Returns preferred size for the given menu item.

Parameters:
c - menu item for which to get preferred size
checkIcon - check icon displayed in the given menu item
arrowIcon - arrow icon displayed in the given menu item
defaultTextIconGap - space between icon and text in the given menuItem
Returns:
$Dimension$ preferred size for the given menu item

getPreferredSize

public Dimension getPreferredSize(JComponent c)
Returns preferred size of the given component

Overrides:
getPreferredSize in class ComponentUI
Parameters:
c - component for which to return preferred size
Returns:
$Dimension$ preferred size for the given component

getPropertyPrefix

protected String getPropertyPrefix()
Returns the prefix for entries in the UIDefaults table.

Returns:
"MenuItem"

installComponents

protected void installComponents(JMenuItem menuItem)
This method installs the components for this JMenuItem.

Parameters:
menuItem - The JMenuItem to install components for.

installDefaults

protected void installDefaults()
This method installs the defaults that are defined in the Basic look and feel for this JMenuItem.


installKeyboardActions

protected void installKeyboardActions()
This method installs the keyboard actions for this JMenuItem.


installListeners

protected void installListeners()
This method installs the listeners for the JMenuItem.


installUI

public void installUI(JComponent c)
Installs and initializes all fields for this UI delegate. Any properties of the UI that need to be initialized and/or set to defaults will be done now. It will also install any listeners necessary.

Overrides:
installUI in class ComponentUI
Parameters:
c - The JComponent that is having this UI installed.
See Also:
ComponentUI.uninstallUI(javax.swing.JComponent), JComponent.setUI(javax.swing.plaf.ComponentUI), JComponent.updateUI()

paint

public void paint(Graphics g,
                  JComponent c)
Paints given menu item using specified graphics context

Overrides:
paint in class ComponentUI
Parameters:
g - The graphics context used to paint this menu item
c - Menu Item to paint

paintBackground

protected void paintBackground(Graphics g,
                               JMenuItem menuItem,
                               Color bgColor)
Paints background of the menu item

Parameters:
g - The graphics context used to paint this menu item
menuItem - menu item to paint
bgColor - Background color to use when painting menu item

paintMenuItem

protected void paintMenuItem(Graphics g,
                             JComponent c,
                             Icon checkIcon,
                             Icon arrowIcon,
                             Color background,
                             Color foreground,
                             int defaultTextIconGap)
Paints specified menu item

Parameters:
g - The graphics context used to paint this menu item
c - menu item to paint
checkIcon - check icon to use when painting menu item
arrowIcon - arrow icon to use when painting menu item
background - Background color of the menu item
foreground - Foreground color of the menu item
defaultTextIconGap - space to use between icon and text when painting menu item

paintText

protected void paintText(Graphics g,
                         JMenuItem menuItem,
                         Rectangle textRect,
                         String text)
Paints label for the given menu item

Parameters:
g - The graphics context used to paint this menu item
menuItem - menu item for which to draw its label
textRect - rectangle specifiying position of the text relative to the given menu item
text - label of the menu item

uninstallComponents

protected void uninstallComponents(JMenuItem menuItem)
This method uninstalls the components for this JMenuItem.

Parameters:
menuItem - The JMenuItem to uninstall components for.

uninstallDefaults

protected void uninstallDefaults()
This method uninstalls the defaults and sets any objects created during install to null


uninstallKeyboardActions

protected void uninstallKeyboardActions()
Uninstalls any keyboard actions.


uninstallListeners

protected void uninstallListeners()
Unregisters all the listeners that this UI delegate was using.


uninstallUI

public void uninstallUI(JComponent c)
Performs the opposite of installUI. Any properties or resources that need to be cleaned up will be done now. It will also uninstall any listeners it has. In addition, any properties of this UI will be nulled.

Overrides:
uninstallUI in class ComponentUI
Parameters:
c - The JComponent that is having this UI uninstalled.
See Also:
ComponentUI.installUI(javax.swing.JComponent), JComponent.setUI(javax.swing.plaf.ComponentUI), JComponent.updateUI()

update

public void update(Graphics g,
                   JComponent c)
This method calls paint.

Overrides:
update in class ComponentUI
Parameters:
g - The graphics context used to paint this menu item
c - The menu item to paint
See Also:
ComponentUI.paint(java.awt.Graphics, javax.swing.JComponent), JComponent.paintComponent(java.awt.Graphics)