# 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
Modifier and Type
Class
Description
`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
Modifier and Type
Field
Description
`protected ChangeListener`
`changeListener`
The instance of `ChangeListener`.
`protected MenuListener`
`menuListener`
The instance of `MenuListener`.

### Fields declared in class BasicMenuItemUI

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

## Constructor Summary

Constructors
Constructor
Description
`BasicMenuUI()`
Constructs a `BasicMenuUI`.

## Method Summary

Modifier and Type
Method
Description
`protected ChangeListener`
`createChangeListener(JComponent c)`
Returns an instance of `ChangeListener`.
`protected MenuListener`
`createMenuListener(JComponent c)`
Returns an instance of `MenuListener`.
`static ComponentUI`
`createUI(JComponent x)`
Constructs a new instance of `BasicMenuUI`.
`protected void`
`setupPostTimer(JMenu menu)`
Sets timer to the `menu`.

### Methods declared in class BasicMenuItemUI

`createMenuDragMouseListener, createMenuKeyListener, createMouseInputListener, createPropertyChangeListener, doClick, getPath, getPreferredMenuItemSize, getPropertyPrefix, installComponents, installDefaults, installKeyboardActions, installListeners, paintBackground, paintMenuItem, paintText, uninstallComponents, uninstallDefaults, uninstallKeyboardActions, uninstallListeners, update`

### Methods declared in class ComponentUI

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

### Methods declared in class Object

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

## Field Details

### changeListener

protected ChangeListener changeListener
The instance of `ChangeListener`.

### menuListener

protected MenuListener menuListener
The instance of `MenuListener`.

## Constructor Details

### BasicMenuUI

public BasicMenuUI()
Constructs a `BasicMenuUI`.

## Method Details

### createUI

public static ComponentUI createUI(JComponent x)
Constructs a new instance of `BasicMenuUI`.

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

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

### setupPostTimer

protected void setupPostTimer(JMenu menu)
Sets timer to the `menu`.

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