# Class MetalComboBoxUI

java.lang.Object
javax.swing.plaf.ComponentUI
javax.swing.plaf.ComboBoxUI
javax.swing.plaf.basic.BasicComboBoxUI
javax.swing.plaf.metal.MetalComboBoxUI

public class MetalComboBoxUI extends BasicComboBoxUI
Metal UI for JComboBox

Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeans has been added to the `java.beans` package. Please see `XMLEncoder`.

See Also:
  - `MetalComboBoxEditor`
  - `MetalComboBoxButton`

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `class`
  `MetalComboBoxUI.MetalComboBoxLayoutManager`
  This class should be treated as a "protected" inner class.
  `class`
  `MetalComboBoxUI.MetalComboPopup`
  Deprecated.
  As of Java 2 platform v1.4.
  `class`
  `MetalComboBoxUI.MetalPropertyChangeListener`
  This class should be treated as a "protected" inner class.

  ### Nested classes/interfaces declared in class javax.swing.plaf.basic.BasicComboBoxUI

  `BasicComboBoxUI.ComboBoxLayoutManager, BasicComboBoxUI.FocusHandler, BasicComboBoxUI.ItemHandler, BasicComboBoxUI.KeyHandler, BasicComboBoxUI.ListDataHandler, BasicComboBoxUI.PropertyChangeHandler`

- ## Field Summary

  ### Fields declared in class javax.swing.plaf.basic.BasicComboBoxUI

  `arrowButton, cachedMinimumSize, comboBox, currentValuePane, editor, focusListener, hasFocus, isMinimumSizeDirty, itemListener, keyListener, listBox, listDataListener, padding, popup, popupKeyListener, popupMouseListener, popupMouseMotionListener, propertyChangeListener, squareButton`

- ## Constructor Summary

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

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `configureEditor()`
  This protected method is implementation specific and should be private.
  `PropertyChangeListener`
  `createPropertyChangeListener()`
  Creates a `PropertyChangeListener` which will be added to the combo box.
  `static ComponentUI`
  `createUI(JComponent c)`
  Constructs an instance of `MetalComboBoxUI`.
  `protected void`
  `editablePropertyChanged(PropertyChangeEvent e)`
  Deprecated.
  As of Java 2 platform v1.4.
  `int`
  `getBaseline(JComponent c, int width, int height)`
  Returns the baseline.
  `void`
  `layoutComboBox(Container parent, MetalComboBoxUI.MetalComboBoxLayoutManager manager)`
  Lays out the `JComboBox` in the `parent` container.
  `void`
  `paintCurrentValue(Graphics g, Rectangle bounds, boolean hasFocus)`
  If necessary paints the currently selected item.
  `void`
  `paintCurrentValueBackground(Graphics g, Rectangle bounds, boolean hasFocus)`
  If necessary paints the background of the currently selected item.
  `protected void`
  `removeListeners()`
  Deprecated.
  As of Java 2 platform v1.4.
  `void`
  `unconfigureEditor()`
  This protected method is implementation specific and should be private.

  ### Methods declared in class javax.swing.plaf.basic.BasicComboBoxUI

  `addEditor, configureArrowButton, createArrowButton, createEditor, createFocusListener, createItemListener, createKeyListener, createLayoutManager, createListDataListener, createPopup, createRenderer, getBaselineResizeBehavior, getDefaultSize, getDisplaySize, getInsets, getMinimumSize, getSizeForComponent, installComponents, installDefaults, installKeyboardActions, installListeners, isFocusTraversable, isNavigationKey, isPopupVisible, rectangleForCurrentValue, removeEditor, selectNextPossibleValue, selectPreviousPossibleValue, setPopupVisible, toggleOpenClose, unconfigureArrowButton, uninstallComponents, uninstallDefaults, uninstallKeyboardActions, uninstallListeners`

  ### Methods declared in class javax.swing.plaf.ComponentUI

  `contains, getAccessibleChild, getAccessibleChildrenCount, getMaximumSize, getPreferredSize, installUI, paint, uninstallUI, update`

  ### Methods declared in class java.lang.Object

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

- ## Constructor Details

  - ### MetalComboBoxUI

    public MetalComboBoxUI()
    Constructs a `MetalComboBoxUI`.

- ## Method Details

  - ### createUI

    public static ComponentUI createUI(JComponent c)
    Constructs an instance of `MetalComboBoxUI`.
    Parameters:
      `c` - a component
    Returns:
      an instance of `MetalComboBoxUI`

  - ### paintCurrentValue

    public void paintCurrentValue(Graphics g, Rectangle bounds, boolean hasFocus)
    If necessary paints the currently selected item.
    Overrides:
      `paintCurrentValue` in class `BasicComboBoxUI`
    Parameters:
      `g` - Graphics to paint to
      `bounds` - Region to paint current value to
      `hasFocus` - whether or not the JComboBox has focus
    Throws:
      `NullPointerException` - if any of the arguments are null.
    Since:
      1.5

  - ### paintCurrentValueBackground

    public void paintCurrentValueBackground(Graphics g, Rectangle bounds, boolean hasFocus)
    If necessary paints the background of the currently selected item.
    Overrides:
      `paintCurrentValueBackground` in class `BasicComboBoxUI`
    Parameters:
      `g` - Graphics to paint to
      `bounds` - Region to paint background to
      `hasFocus` - whether or not the JComboBox has focus
    Throws:
      `NullPointerException` - if any of the arguments are null.
    Since:
      1.5

  - ### getBaseline

    public int getBaseline(JComponent c, int width, int height)
    Returns the baseline.
    Overrides:
      `getBaseline` in class `BasicComboBoxUI`
    Parameters:
      `c` - `JComponent` baseline is being requested for
      `width` - the width to get the baseline for
      `height` - the height to get the baseline for
    Returns:
      baseline or a value < 0 indicating there is no reasonable baseline
    Throws:
      `NullPointerException` - if `c` is `null`
      `IllegalArgumentException` - if width or height is < 0
    Since:
      1.6
    See Also:
      - `JComponent.getBaseline(int, int)`

  - ### createPropertyChangeListener

    public PropertyChangeListener createPropertyChangeListener()
    Description copied from class: `BasicComboBoxUI`
    Creates a `PropertyChangeListener` which will be added to the combo box. If this method returns null then it will not be added to the combo box.
    Overrides:
      `createPropertyChangeListener` in class `BasicComboBoxUI`
    Returns:
      an instance of a `PropertyChangeListener` or null

  - ### editablePropertyChanged

    @Deprecated protected void editablePropertyChanged(PropertyChangeEvent e)
    Deprecated.
    As of Java 2 platform v1.4.
    As of Java 2 platform v1.4 this method is no longer used. Do not call or override. All the functionality of this method is in the MetalPropertyChangeListener.
    Parameters:
      `e` - an instance of `PropertyChangeEvent`

  - ### layoutComboBox

    public void layoutComboBox(Container parent, MetalComboBoxUI.MetalComboBoxLayoutManager manager)
    Lays out the `JComboBox` in the `parent` container.
    Parameters:
      `parent` - a container
      `manager` - an instance of `MetalComboBoxLayoutManager`

  - ### removeListeners

    @Deprecated protected void removeListeners()
    Deprecated.
    As of Java 2 platform v1.4.
    As of Java 2 platform v1.4 this method is no longer used.

  - ### configureEditor

    public void configureEditor()
    Description copied from class: `BasicComboBoxUI`
    This protected method is implementation specific and should be private. do not call or override.
    Overrides:
      `configureEditor` in class `BasicComboBoxUI`
    See Also:
      - `BasicComboBoxUI.addEditor()`

  - ### unconfigureEditor

    public void unconfigureEditor()
    Description copied from class: `BasicComboBoxUI`
    This protected method is implementation specific and should be private. Do not call or override.
    Overrides:
      `unconfigureEditor` in class `BasicComboBoxUI`
    See Also:
      - `BasicComboBoxUI.addEditor()`