Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Java™ Platform Standard Ed. 6
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## javax.swing.plaf.basic
Class BasicMenuItemUI

    java.lang.Object
      javax.swing.plaf.ComponentUI
          javax.swing.plaf.ButtonUI
              javax.swing.plaf.MenuItemUI
                  javax.swing.plaf.basic.BasicMenuItemUI

Direct Known Subclasses:
  BasicCheckBoxMenuItemUI, BasicMenuUI, BasicRadioButtonMenuItemUI

    public class BasicMenuItemUI

extends MenuItemUI

BasicMenuItem implementation

Nested Class Summary
`protected class` | `BasicMenuItemUI.MouseInputHandler`

Field Summary
`protected Font` | `acceleratorFont`
`protected Color` | `acceleratorForeground`
`protected Color` | `acceleratorSelectionForeground`
`protected Icon` | `arrowIcon`
`protected Icon` | `checkIcon`
`protected int` | `defaultTextIconGap`
`protected Color` | `disabledForeground`
`protected MenuDragMouseListener` | `menuDragMouseListener`
`protected JMenuItem` | `menuItem`
`protected MenuKeyListener` | `menuKeyListener`
`protected MouseInputListener` | `mouseInputListener`
`protected boolean` | `oldBorderPainted`
`protected PropertyChangeListener` | `propertyChangeListener` `PropertyChangeListener` returned from `createPropertyChangeListener`.
`protected Color` | `selectionBackground`
`protected Color` | `selectionForeground`

Constructor Summary
`BasicMenuItemUI()`

Method Summary
`protected MenuDragMouseListener` | `createMenuDragMouseListener(JComponent c)`
`protected MenuKeyListener` | `createMenuKeyListener(JComponent c)`
`protected MouseInputListener` | `createMouseInputListener(JComponent c)`
`protected PropertyChangeListener` | `createPropertyChangeListener(JComponent c)` Creates a `PropertyChangeListener` which will be added to the menu item.
`static ComponentUI` | `createUI(JComponent c)`
`protected void` | `doClick(MenuSelectionManager msm)` Call this method when a menu item is to be activated.
`Dimension` | `getMaximumSize(JComponent c)` Returns the specified component's maximum size appropriate for the look and feel.
`Dimension` | `getMinimumSize(JComponent c)` Returns the specified component's minimum size appropriate for the look and feel.
`MenuElement[]` | `getPath()`
`protected Dimension` | `getPreferredMenuItemSize(JComponent c, Icon checkIcon, Icon arrowIcon, int defaultTextIconGap)`
`Dimension` | `getPreferredSize(JComponent c)` Returns the specified component's preferred size appropriate for the look and feel.
`protected String` | `getPropertyPrefix()`
`protected void` | `installComponents(JMenuItem menuItem)`
`protected void` | `installDefaults()`
`protected void` | `installKeyboardActions()`
`protected void` | `installListeners()`
`void` | `installUI(JComponent c)` Configures the specified component appropriate for the look and feel.
`void` | `paint(Graphics g, JComponent c)` Paints the specified component appropriate for the look and feel.
`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)`
`protected void` | `paintText(Graphics g, JMenuItem menuItem, Rectangle textRect, String text)` Renders the text of the current menu item.
`protected void` | `uninstallComponents(JMenuItem menuItem)`
`protected void` | `uninstallDefaults()`
`protected void` | `uninstallKeyboardActions()`
`protected void` | `uninstallListeners()`
`void` | `uninstallUI(JComponent c)` Reverses configuration which was done on the specified component during `installUI`.
`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 inherited from class javax.swing.plaf.ComponentUI
`contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### menuItem

    protected JMenuItem menuItem

### selectionBackground

    protected Color selectionBackground

### selectionForeground

    protected Color selectionForeground

### disabledForeground

    protected Color disabledForeground

### acceleratorForeground

    protected Color acceleratorForeground

### acceleratorSelectionForeground

    protected Color acceleratorSelectionForeground

### defaultTextIconGap

    protected int defaultTextIconGap

### acceleratorFont

    protected Font acceleratorFont

### mouseInputListener

    protected MouseInputListener mouseInputListener

### menuDragMouseListener

    protected MenuDragMouseListener menuDragMouseListener

### menuKeyListener

    protected MenuKeyListener 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

### checkIcon

    protected Icon checkIcon

### oldBorderPainted

    protected boolean oldBorderPainted

Constructor Detail

### BasicMenuItemUI

    public BasicMenuItemUI()

Method Detail

### createUI

    public static ComponentUI createUI(JComponent c)

### installUI

    public void installUI(JComponent c)

  Description copied from class: `ComponentUI`
  Configures the specified component appropriate for the look and feel. This method is invoked when the `ComponentUI` instance is being installed as the UI delegate on the specified component. This method should completely configure the component for the look and feel, including the following:
  1. Install any default property values for color, fonts, borders, icons, opacity, etc. on the component. Whenever possible, property values initialized by the client program should not be overridden.
  2. Install a `LayoutManager` on the component if necessary.
  3. Create/add any required sub-components to the component.
  4. Create/install event listeners on the component.
  5. Create/install a `PropertyChangeListener` on the component in order to detect and respond to component property changes appropriately.
  6. Install keyboard UI (mnemonics, traversal, etc.) on the component.
  7. Initialize any appropriate instance data.

  Overrides:
    `installUI` in class `ComponentUI`
  Parameters:
    `c` - the component where this UI delegate is being installed
  See Also:
    `ComponentUI.uninstallUI(javax.swing.JComponent)`, `JComponent.setUI(javax.swing.plaf.ComponentUI)`, `JComponent.updateUI()`

### installDefaults

    protected void installDefaults()

### installComponents

    protected void installComponents(JMenuItem menuItem)

  Since:
    1.3

### getPropertyPrefix

    protected String getPropertyPrefix()

### installListeners

    protected void installListeners()

### installKeyboardActions

    protected void installKeyboardActions()

### uninstallUI

    public void uninstallUI(JComponent c)

  Description copied from class: `ComponentUI`
  Reverses configuration which was done on the specified component during `installUI`. This method is invoked when this `UIComponent` instance is being removed as the UI delegate for the specified component. This method should undo the configuration performed in `installUI`, being careful to leave the `JComponent` instance in a clean state (no extraneous listeners, look-and-feel-specific property objects, etc.). This should include the following:
  1. Remove any UI-set borders from the component.
  2. Remove any UI-set layout managers on the component.
  3. Remove any UI-added sub-components from the component.
  4. Remove any UI-added event/property listeners from the component.
  5. Remove any UI-installed keyboard UI from the component.
  6. Nullify any allocated instance data objects to allow for GC.

  Overrides:
    `uninstallUI` in class `ComponentUI`
  Parameters:
    `c` - the component from which this UI delegate is being removed; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components
  See Also:
    `ComponentUI.installUI(javax.swing.JComponent)`, `JComponent.updateUI()`

### uninstallDefaults

    protected void uninstallDefaults()

### uninstallComponents

    protected void uninstallComponents(JMenuItem menuItem)

  Since:
    1.3

### uninstallListeners

    protected void uninstallListeners()

### uninstallKeyboardActions

    protected void uninstallKeyboardActions()

### createMouseInputListener

    protected MouseInputListener createMouseInputListener(JComponent c)

### createMenuDragMouseListener

    protected MenuDragMouseListener createMenuDragMouseListener(JComponent c)

### createMenuKeyListener

    protected MenuKeyListener createMenuKeyListener(JComponent c)

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

  Returns:
    an instance of a `PropertyChangeListener` or null
  Since:
    1.6

### getMinimumSize

    public Dimension getMinimumSize(JComponent c)

  Description copied from class: `ComponentUI`
  Returns the specified component's minimum size appropriate for the look and feel. If `null` is returned, the minimum size will be calculated by the component's layout manager instead (this is the preferred approach for any component with a specific layout manager installed). The default implementation of this method invokes `getPreferredSize` and returns that value.

  Overrides:
    `getMinimumSize` in class `ComponentUI`
  Parameters:
    `c` - the component whose minimum size is being queried; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components
  Returns:
    a `Dimension` object or `null`
  See Also:
    `JComponent.getMinimumSize()`, `LayoutManager.minimumLayoutSize(java.awt.Container)`, `ComponentUI.getPreferredSize(javax.swing.JComponent)`

### getPreferredSize

    public Dimension getPreferredSize(JComponent c)

  Description copied from class: `ComponentUI`
  Returns the specified component's preferred size appropriate for the look and feel. If `null` is returned, the preferred size will be calculated by the component's layout manager instead (this is the preferred approach for any component with a specific layout manager installed). The default implementation of this method returns `null`.

  Overrides:
    `getPreferredSize` in class `ComponentUI`
  Parameters:
    `c` - the component whose preferred size is being queried; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components
  See Also:
    `JComponent.getPreferredSize()`, `LayoutManager.preferredLayoutSize(java.awt.Container)`

### getMaximumSize

    public Dimension getMaximumSize(JComponent c)

  Description copied from class: `ComponentUI`
  Returns the specified component's maximum size appropriate for the look and feel. If `null` is returned, the maximum size will be calculated by the component's layout manager instead (this is the preferred approach for any component with a specific layout manager installed). The default implementation of this method invokes `getPreferredSize` and returns that value.

  Overrides:
    `getMaximumSize` in class `ComponentUI`
  Parameters:
    `c` - the component whose maximum size is being queried; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components
  Returns:
    a `Dimension` object or `null`
  See Also:
    `JComponent.getMaximumSize()`, `LayoutManager2.maximumLayoutSize(java.awt.Container)`

### getPreferredMenuItemSize

    protected Dimension getPreferredMenuItemSize(JComponent c,
                                                 Icon checkIcon,
                                                 Icon arrowIcon,
                                                 int defaultTextIconGap)

### 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)`

### paint

    public void paint(Graphics g,
                      JComponent c)

  Description copied from class: `ComponentUI`
  Paints the specified component appropriate for the look and feel. This method is invoked from the `ComponentUI.update` method when the specified component is being painted. Subclasses should override this method and use the specified `Graphics` object to render the content of the component.

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

### paintMenuItem

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

### 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()

### 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)`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Java™ Platform Standard Ed. 6
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Submit a bug or feature
For further API reference and developer documentation, see Java SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Copyright © 1993, 2010, Oracle and/or its affiliates. All rights reserved.