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

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

## Field Summary

### Fields declared in class 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. do not call or override.
`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 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 ComponentUI

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

### Methods declared in class 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()`