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
    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 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 | Description
    --- | ---
    `BasicMenuUI​()` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `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`.