BasicMenuUI (Java Platform SE 8 )
Keywords: javax.swing.plaf.basic.BasicMenuUI class
Date: 2023-01-18

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 and 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 and Description
    --- | ---
    `protected ChangeListener` | `changeListener`
    `protected MenuListener` | `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
    Modifier and Type | Method and Description
    --- | ---
    `protected ChangeListener` | `createChangeListener(JComponent c)`
    `protected MenuDragMouseListener` | `createMenuDragMouseListener(JComponent c)`
    `protected MenuKeyListener` | `createMenuKeyListener(JComponent c)`
    `protected MenuListener` | `createMenuListener(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 x)`
    `Dimension` | `getMaximumSize(JComponent c)` Returns the specified component's maximum size appropriate for the look and feel.
    `protected String` | `getPropertyPrefix()`
    `protected void` | `installDefaults()`
    `protected void` | `installKeyboardActions()`
    `protected void` | `installListeners()`
    `protected void` | `setupPostTimer(JMenu menu)`
    `protected void` | `uninstallDefaults()`
    `protected void` | `uninstallKeyboardActions()`
    `protected void` | `uninstallListeners()`

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

    - #### menuListener

          protected MenuListener menuListener

  - ### Constructor Detail

    - #### BasicMenuUI

          public BasicMenuUI()

  - ### Method Detail

    - #### createUI

          public static ComponentUI createUI(JComponent x)

    - #### installDefaults

          protected void installDefaults()

      Overrides:
        `installDefaults` in class `BasicMenuItemUI`

    - #### getPropertyPrefix

          protected String getPropertyPrefix()

      Overrides:
        `getPropertyPrefix` in class `BasicMenuItemUI`

    - #### installListeners

          protected void installListeners()

      Overrides:
        `installListeners` in class `BasicMenuItemUI`

    - #### installKeyboardActions

          protected void installKeyboardActions()

      Overrides:
        `installKeyboardActions` in class `BasicMenuItemUI`

    - #### uninstallKeyboardActions

          protected void uninstallKeyboardActions()

      Overrides:
        `uninstallKeyboardActions` in class `BasicMenuItemUI`

    - #### createMouseInputListener

          protected MouseInputListener createMouseInputListener(JComponent c)

      Overrides:
        `createMouseInputListener` in class `BasicMenuItemUI`

    - #### createMenuListener

          protected MenuListener createMenuListener(JComponent c)

    - #### createChangeListener

          protected ChangeListener createChangeListener(JComponent c)

    - #### 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`
      Returns:
        an instance of a `PropertyChangeListener` or null

    - #### uninstallDefaults

          protected void uninstallDefaults()

      Overrides:
        `uninstallDefaults` in class `BasicMenuItemUI`

    - #### uninstallListeners

          protected void uninstallListeners()

      Overrides:
        `uninstallListeners` in class `BasicMenuItemUI`

    - #### createMenuDragMouseListener

          protected MenuDragMouseListener createMenuDragMouseListener(JComponent c)

      Overrides:
        `createMenuDragMouseListener` in class `BasicMenuItemUI`

    - #### createMenuKeyListener

          protected MenuKeyListener createMenuKeyListener(JComponent c)

      Overrides:
        `createMenuKeyListener` in class `BasicMenuItemUI`

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

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2023, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.