# Class MetalMenuBarUI

java.lang.Object
javax.swing.plaf.ComponentUI
javax.swing.plaf.MenuBarUI
javax.swing.plaf.basic.BasicMenuBarUI
javax.swing.plaf.metal.MetalMenuBarUI

public class MetalMenuBarUI extends BasicMenuBarUI
Metal implementation of `MenuBarUI`. This class is responsible for providing the metal look and feel for `JMenuBar`s.

Since:
  1.5
See Also:
  - `MenuBarUI`

- ## Field Summary

  ### Fields declared in class BasicMenuBarUI

  `changeListener, containerListener, menuBar`

- ## Constructor Summary

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

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static ComponentUI`
  `createUI(JComponent x)`
  Creates the `ComponentUI` implementation for the passed in component.
  `void`
  `installUI(JComponent c)`
  Configures the specified component appropriate for the metal look and feel.
  `void`
  `uninstallUI(JComponent c)`
  Reverses configuration which was done on the specified component during `installUI`.
  `void`
  `update(Graphics g, JComponent c)`
  If necessary paints the background of the component, then invokes `paint`.

  ### Methods declared in class BasicMenuBarUI

  `createChangeListener, createContainerListener, installDefaults, installKeyboardActions, installListeners, uninstallDefaults, uninstallKeyboardActions, uninstallListeners`

  ### Methods declared in class ComponentUI

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

  ### Methods declared in class Object

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

- ## Constructor Details

  - ### MetalMenuBarUI

    public MetalMenuBarUI()
    Constructs a `MetalMenuBarUI`.

- ## Method Details

  - ### createUI

    public static ComponentUI createUI(JComponent x)
    Creates the `ComponentUI` implementation for the passed in component.
    Parameters:
      `x` - JComponent to create the ComponentUI implementation for
    Returns:
      ComponentUI implementation for `x`
    Throws:
      `NullPointerException` - if `x` is null

  - ### installUI

    public void installUI(JComponent c)
    Configures the specified component appropriate for the metal look and feel.
    Overrides:
      `installUI` in class `ComponentUI`
    Parameters:
      `c` - the component where this UI delegate is being installed
    Throws:
      `NullPointerException` - if `c` is null.
    See Also:
      - `ComponentUI.uninstallUI(JComponent)`
      - `JComponent.setUI(ComponentUI)`
      - `JComponent.updateUI()`

  - ### uninstallUI

    public void uninstallUI(JComponent c)
    Reverses configuration which was done on the specified component during `installUI`.
    Overrides:
      `uninstallUI` in class `ComponentUI`
    Parameters:
      `c` - the component where this UI delegate is being installed
    Throws:
      `NullPointerException` - if `c` is null.
    See Also:
      - `ComponentUI.installUI(JComponent)`
      - `JComponent.updateUI()`

  - ### update

    public void update(Graphics g, JComponent c)
    If necessary paints the background of the component, then invokes `paint`.
    Overrides:
      `update` in class `ComponentUI`
    Parameters:
      `g` - Graphics to paint to
      `c` - JComponent painting on
    Throws:
      `NullPointerException` - if `g` or `c` is null
    Since:
      1.5
    See Also:
      - `ComponentUI.update(Graphics, JComponent)`
      - `ComponentUI.paint(Graphics, JComponent)`