# Class SynthListUI

java.lang.Object
javax.swing.plaf.ComponentUI
javax.swing.plaf.ListUI
javax.swing.plaf.basic.BasicListUI
javax.swing.plaf.synth.SynthListUI

All Implemented Interfaces:
  `PropertyChangeListener, EventListener, SynthConstants, SynthUI`

public class SynthListUI extends BasicListUI implements PropertyChangeListener, SynthUI
Provides the Synth L&F UI delegate for `JList`.

Since:
  1.7

## Nested Class Summary

### Nested classes/interfaces declared in class BasicListUI

`BasicListUI.FocusHandler, BasicListUI.ListDataHandler, BasicListUI.ListSelectionHandler, BasicListUI.MouseInputHandler, BasicListUI.PropertyChangeHandler`

## Field Summary

### Fields declared in class BasicListUI

`cellHeight, cellHeights, cellRendererChanged, cellWidth, fixedCellHeightChanged, fixedCellWidthChanged, focusListener, fontChanged, list, listDataListener, listSelectionListener, modelChanged, mouseInputListener, propertyChangeListener, prototypeCellValueChanged, rendererPane, selectionModelChanged, updateLayoutStateNeeded`

### Fields declared in interface SynthConstants

`DEFAULT, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED, SELECTED`

## Constructor Summary

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

## Method Summary

Modifier and Type
Method
Description
`static ComponentUI`
`createUI(JComponent list)`
Creates a new UI object for the given component.
`SynthContext`
`getContext(JComponent c)`
Returns the Context for the specified component.
`void`
`paintBorder(SynthContext context, Graphics g, int x, int y, int w, int h)`
Paints the border.
`void`
`propertyChange(PropertyChangeEvent e)`
This method gets called when a bound property is changed.
`void`
`update(Graphics g, JComponent c)`
Notifies this UI delegate to repaint the specified component.

### Methods declared in class BasicListUI

`convertRowToY, convertYToRow, createFocusListener, createListDataListener, createListSelectionListener, createMouseInputListener, createPropertyChangeListener, getBaseline, getBaselineResizeBehavior, getCellBounds, getPreferredSize, getRowHeight, indexToLocation, installDefaults, installKeyboardActions, installListeners, installUI, locationToIndex, maybeUpdateLayoutState, paint, paintCell, selectNextIndex, selectPreviousIndex, uninstallDefaults, uninstallKeyboardActions, uninstallListeners, uninstallUI, updateLayoutState`

### Methods declared in class ComponentUI

`contains, getAccessibleChild, getAccessibleChildrenCount, getMaximumSize, getMinimumSize`

### Methods declared in class Object

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

## Constructor Details

### SynthListUI

public SynthListUI()
Constructs a `SynthListUI`.

## Method Details

### createUI

public static ComponentUI createUI(JComponent list)
Creates a new UI object for the given component.

Parameters:
  `list` - component to create UI object for
Returns:
  the UI object

### update

public void update(Graphics g, JComponent c)
Notifies this UI delegate to repaint the specified component. This method paints the component background, then calls the `BasicListUI.paint(Graphics, JComponent)` method.

In general, this method does not need to be overridden by subclasses. All Look and Feel rendering code should reside in the `paint` method.

Overrides:
  `update` in class `ComponentUI`
Parameters:
  `g` - the `Graphics` object used for painting
  `c` - the component being painted
See Also:
  - `BasicListUI.paint(Graphics, JComponent)`

### paintBorder

public void paintBorder(SynthContext context, Graphics g, int x, int y, int w, int h)
Paints the border.

Specified by:
  `paintBorder` in interface `SynthUI`
Parameters:
  `context` - a component context
  `g` - `Graphics` to paint on
  `x` - the X coordinate
  `y` - the Y coordinate
  `w` - width of the border
  `h` - height of the border

### propertyChange

public void propertyChange(PropertyChangeEvent e)
This method gets called when a bound property is changed.

Specified by:
  `propertyChange` in interface `PropertyChangeListener`
Parameters:
  `e` - A PropertyChangeEvent object describing the event source and the property that has changed.

### getContext

public SynthContext getContext(JComponent c)
Returns the Context for the specified component.

Specified by:
  `getContext` in interface `SynthUI`
Parameters:
  `c` - Component requesting SynthContext.
Returns:
  SynthContext describing component.