SynthSpinnerUI (Java SE 13 & JDK 13 )
Description: declaration: module: java.desktop, package: javax.swing.plaf.synth, class: SynthSpinnerUI
Keywords: javax.swing.plaf.synth.SynthSpinnerUI class

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()` |

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

  ### Methods declared in interface java.beans.PropertyChangeListener

  `propertyChange`

  ### Methods declared in interface javax.swing.plaf.synth.SynthUI

  `getContext, paintBorder`

- ## Constructor Details

  - ### SynthSpinnerUI

    public 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()`

  - ### 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)`