javax.swing.plaf.basic

Class BasicMenuItemUI

Known Direct 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, createUI, getAccessibleChild, getAccessibleChildrenCount, getMaximumSize, getMinimumSize, getPreferredSize, installUI, paint, uninstallUI, update

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Details

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 Details

BasicMenuItemUI

public BasicMenuItemUI()
Creates a new BasicMenuItemUI object.

Method Details

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.
Overrides:
createUI in interface ComponentUI
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 interface 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 interface 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 interface 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 interface ComponentUI
Parameters:
c - The JComponent that is having this UI installed.

paint

public void paint(Graphics g,
                  JComponent c)
Paints given menu item using specified graphics context
Overrides:
paint in interface 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 interface ComponentUI
Parameters:
c - The JComponent that is having this UI uninstalled.

update

public void update(Graphics g,
                   JComponent c)
This method calls paint.
Overrides:
update in interface ComponentUI
Parameters:
g - The graphics context used to paint this menu item
c - The menu item to paint

BasicMenuItemUI.java -- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.