Module java.desktop
Package javax.swing.plaf.basic

## Class BasicMenuUI

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

Direct Known Subclasses:
  SynthMenuUI

    public class BasicMenuUI
    extends BasicMenuItemUI

A default L&F implementation of MenuUI. This implementation is a "combined" view/controller.

### Nested Class Summary

Nested Classes
`class` `BasicMenuUI.ChangeHandler` As of Java 2 platform 1.4, this previously undocumented class is now obsolete.
`protected class` `BasicMenuUI.MouseInputHandler` Instantiated and used by a menu item to handle the current menu selection from mouse events.

### Field Summary

Fields
`protected ChangeListener` `changeListener` The instance of `ChangeListener`.
`protected MenuListener` `menuListener` The instance of `MenuListener`.

### Fields inherited from class javax.swing.plaf.basic.BasicMenuItemUI

`acceleratorDelimiter, acceleratorFont, acceleratorForeground, acceleratorSelectionForeground, arrowIcon, checkIcon, defaultTextIconGap, disabledForeground, menuDragMouseListener, menuItem, menuKeyListener, mouseInputListener, oldBorderPainted, propertyChangeListener, selectionBackground, selectionForeground`

### Constructor Summary

Constructors
Constructor and Description
`BasicMenuUI()`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`protected ChangeListener` `createChangeListener(JComponent c)` Returns an instance of `ChangeListener`.
`protected MenuDragMouseListener` `createMenuDragMouseListener(JComponent c)` Returns an instance of `MenuDragMouseListener`.
`protected MenuKeyListener` `createMenuKeyListener(JComponent c)` Returns an instance of `MenuKeyListener`.
`protected MenuListener` `createMenuListener(JComponent c)` Returns an instance of `MenuListener`.
`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 x)` Constructs a new instance of `BasicMenuUI`.
`Dimension` `getMaximumSize(JComponent c)` Returns the specified component's maximum size appropriate for the look and feel.
`protected String` `getPropertyPrefix()` Returns a property prefix.
`protected void` `installDefaults()` Installs default properties.
`protected void` `installKeyboardActions()` Registers keyboard action.
`protected void` `installListeners()` Registers listeners.
`protected void` `setupPostTimer(JMenu menu)` Sets timer to the `menu`.
`protected void` `uninstallDefaults()` Uninstalls default properties.
`protected void` `uninstallKeyboardActions()` Unregisters keyboard actions.
`protected void` `uninstallListeners()` Unregisters listeners.

### Methods inherited from class javax.swing.plaf.basic.BasicMenuItemUI

`doClick, getMinimumSize, getPath, getPreferredMenuItemSize, getPreferredSize, installComponents, installUI, paint, paintBackground, paintMenuItem, paintText, uninstallComponents, uninstallUI, update`

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

#### changeListener

    protected ChangeListener changeListener

The instance of `ChangeListener`.

#### menuListener

    protected MenuListener menuListener

The instance of `MenuListener`.

### Constructor Detail

#### BasicMenuUI

    public BasicMenuUI()

### Method Detail

#### createUI

    public static ComponentUI createUI(JComponent x)

Constructs a new instance of `BasicMenuUI`.

Parameters:
  `x` - a component
Returns:
  a new instance of `BasicMenuUI`

#### installDefaults

    protected void installDefaults()

Description copied from class: `BasicMenuItemUI`
Installs default properties.

Overrides:
  `installDefaults` in class `BasicMenuItemUI`

#### getPropertyPrefix

    protected String getPropertyPrefix()

Description copied from class: `BasicMenuItemUI`
Returns a property prefix.

Overrides:
  `getPropertyPrefix` in class `BasicMenuItemUI`
Returns:
  a property prefix

#### installListeners

    protected void installListeners()

Description copied from class: `BasicMenuItemUI`
Registers listeners.

Overrides:
  `installListeners` in class `BasicMenuItemUI`

#### installKeyboardActions

    protected void installKeyboardActions()

Description copied from class: `BasicMenuItemUI`
Registers keyboard action.

Overrides:
  `installKeyboardActions` in class `BasicMenuItemUI`

#### uninstallKeyboardActions

    protected void uninstallKeyboardActions()

Description copied from class: `BasicMenuItemUI`
Unregisters keyboard actions.

Overrides:
  `uninstallKeyboardActions` in class `BasicMenuItemUI`

#### createMouseInputListener

    protected MouseInputListener createMouseInputListener(JComponent c)

Description copied from class: `BasicMenuItemUI`
Returns an instance of `MouseInputListener`.

Overrides:
  `createMouseInputListener` in class `BasicMenuItemUI`
Parameters:
  `c` - a component
Returns:
  an instance of `MouseInputListener`

#### createMenuListener

    protected MenuListener createMenuListener(JComponent c)

Returns an instance of `MenuListener`.

Parameters:
  `c` - a component
Returns:
  an instance of `MenuListener`

#### createChangeListener

    protected ChangeListener createChangeListener(JComponent c)

Returns an instance of `ChangeListener`.

Parameters:
  `c` - a component
Returns:
  an instance of `ChangeListener`

#### createPropertyChangeListener

    protected PropertyChangeListener createPropertyChangeListener(JComponent c)

Description copied from class: `BasicMenuItemUI`
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.

Overrides:
  `createPropertyChangeListener` in class `BasicMenuItemUI`
Parameters:
  `c` - a component
Returns:
  an instance of a `PropertyChangeListener` or null

#### uninstallDefaults

    protected void uninstallDefaults()

Description copied from class: `BasicMenuItemUI`
Uninstalls default properties.

Overrides:
  `uninstallDefaults` in class `BasicMenuItemUI`

#### uninstallListeners

    protected void uninstallListeners()

Description copied from class: `BasicMenuItemUI`
Unregisters listeners.

Overrides:
  `uninstallListeners` in class `BasicMenuItemUI`

#### createMenuDragMouseListener

    protected MenuDragMouseListener createMenuDragMouseListener(JComponent c)

Description copied from class: `BasicMenuItemUI`
Returns an instance of `MenuDragMouseListener`.

Overrides:
  `createMenuDragMouseListener` in class `BasicMenuItemUI`
Parameters:
  `c` - a component
Returns:
  an instance of `MenuDragMouseListener`

#### createMenuKeyListener

    protected MenuKeyListener createMenuKeyListener(JComponent c)

Description copied from class: `BasicMenuItemUI`
Returns an instance of `MenuKeyListener`.

Overrides:
  `createMenuKeyListener` in class `BasicMenuItemUI`
Parameters:
  `c` - a component
Returns:
  an instance of `MenuKeyListener`

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

#### setupPostTimer

    protected void setupPostTimer(JMenu menu)

Sets timer to the `menu`.

Parameters:
  `menu` - an instance of `JMenu`.