Module java.desktop
Package javax.swing.plaf.synth

# Class SynthSpinnerUI

java.lang.Object
javax.swing.plaf.ComponentUI
javax.swing.plaf.SpinnerUI
javax.swing.plaf.basic.BasicSpinnerUI
javax.swing.plaf.synth.SynthSpinnerUI

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

public class SynthSpinnerUI extends BasicSpinnerUI implements PropertyChangeListener, SynthUI
Provides the Synth L&F UI delegate for `JSpinner`.

Since:
  1.7

## Field Summary

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

`spinner`

### Fields declared in interface javax.swing.plaf.synth.SynthConstants

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

## Constructor Summary

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

## Method Summary

Modifier and Type
Method
Description
`protected JComponent`
`createEditor()`
This method is called by installUI to get the editor component of the `JSpinner`.
`static ComponentUI`
`createUI​(JComponent c)`
Returns a new instance of SynthSpinnerUI.
`SynthContext`
`getContext​(JComponent c)`
Returns the Context for the specified component.
`protected void`
`installDefaults()`
Initializes the `JSpinner` `border`, `foreground`, and `background`, properties based on the corresponding "Spinner.*" properties from defaults table.
`void`
`paint​(Graphics g, JComponent c)`
Paints the specified component according to the Look and Feel.
`protected void`
`paint​(SynthContext context, Graphics g)`
Paints 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.
`protected void`
`replaceEditor​(JComponent oldEditor, JComponent newEditor)`
Called by the `PropertyChangeListener` when the `JSpinner` editor property changes.
`protected void`
`uninstallDefaults()`
Sets the `JSpinner's` layout manager to null.
`void`
`update​(Graphics g, JComponent c)`
Notifies this UI delegate to repaint the specified component.

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

`createLayout, createNextButton, createPreviousButton, createPropertyChangeListener, getBaseline, getBaselineResizeBehavior, installKeyboardActions, installListeners, installNextButtonListeners, installPreviousButtonListeners, installUI, uninstallListeners, uninstallUI`

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

`contains, getAccessibleChild, getAccessibleChildrenCount, getMaximumSize, getMinimumSize, getPreferredSize`

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

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

## Constructor Details

### SynthSpinnerUI

public SynthSpinnerUI()
Constructs a `SynthSpinnerUI`.

## Method Details

### createUI

public static ComponentUI createUI​(JComponent c)
Returns a new instance of SynthSpinnerUI.

Parameters:
  `c` - the JSpinner (not used)
Returns:
  a new SynthSpinnerUI object
See Also:
  `ComponentUI.createUI(javax.swing.JComponent)`

### installDefaults

protected void installDefaults()
Initializes the `JSpinner` `border`, `foreground`, and `background`, properties based on the corresponding "Spinner.*" properties from defaults table. The `JSpinners` layout is set to the value returned by `createLayout`. This method is called by `installUI`.

Overrides:
  `installDefaults` in class `BasicSpinnerUI`
See Also:
  `uninstallDefaults()`, `BasicSpinnerUI.installUI(javax.swing.JComponent)`, `BasicSpinnerUI.createLayout()`, `LookAndFeel.installBorder(javax.swing.JComponent, java.lang.String)`, `LookAndFeel.installColors(javax.swing.JComponent, java.lang.String, java.lang.String)`

### uninstallDefaults

protected void uninstallDefaults()
Sets the `JSpinner's` layout manager to null. This method is called by `uninstallUI`.

Overrides:
  `uninstallDefaults` in class `BasicSpinnerUI`
See Also:
  `installDefaults()`, `BasicSpinnerUI.uninstallUI(javax.swing.JComponent)`

### createEditor

protected JComponent createEditor()
This method is called by installUI to get the editor component of the `JSpinner`. By default it just returns `JSpinner.getEditor()`. Subclasses can override `createEditor` to return a component that contains the spinner's editor or null, if they're going to handle adding the editor to the `JSpinner` in an `installUI` override.

Typically this method would be overridden to wrap the editor with a container with a custom border, since one can't assume that the editors border can be set directly.

The `replaceEditor` method is called when the spinners editor is changed with `JSpinner.setEditor`. If you've overriden this method, then you'll probably want to override `replaceEditor` as well.

Overrides:
  `createEditor` in class `BasicSpinnerUI`
Returns:
  the JSpinners editor JComponent, spinner.getEditor() by default
See Also:
  `BasicSpinnerUI.installUI(javax.swing.JComponent)`, `replaceEditor(javax.swing.JComponent, javax.swing.JComponent)`, `JSpinner.getEditor()`

### replaceEditor

protected void replaceEditor​(JComponent oldEditor, JComponent newEditor)
Called by the `PropertyChangeListener` when the `JSpinner` editor property changes. It's the responsibility of this method to remove the old editor and add the new one. By default this operation is just:

     spinner.remove(oldEditor);
     spinner.add(newEditor, "Editor");

The implementation of `replaceEditor` should be coordinated with the `createEditor` method.

Overrides:
  `replaceEditor` in class `BasicSpinnerUI`
Parameters:
  `oldEditor` - an old instance of editor
  `newEditor` - a new instance of editor
See Also:
  `createEditor()`, `BasicSpinnerUI.createPropertyChangeListener()`

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

### 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 `paint(SynthContext,Graphics)` 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:
  `paint(SynthContext,Graphics)`

### paint

public void paint​(Graphics g, JComponent c)
Paints the specified component according to the Look and Feel.

This method is not used by Synth Look and Feel. Painting is handled by the `paint(SynthContext,Graphics)` method.

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

### paint

protected void paint​(SynthContext context, Graphics g)
Paints the specified component. This implementation does nothing.

Parameters:
  `context` - context for the component being painted
  `g` - the `Graphics` object used for painting
See Also:
  `update(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.