Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| JavaTM 2 Platform Std. Ed. v1.4.1
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## javax.swing.plaf.basic
Class BasicSpinnerUI

    java.lang.Object
      |
      +--javax.swing.plaf.ComponentUI
            |
            +--javax.swing.plaf.SpinnerUI
                  |
                  +--javax.swing.plaf.basic.BasicSpinnerUI

public class BasicSpinnerUI
extends SpinnerUI

The default Spinner UI delegate.

Since:
  1.4

Field Summary
`protected JSpinner` | `spinner` The spinner that we're a UI delegate for.

Constructor Summary
`BasicSpinnerUI()`

Method Summary
`protected JComponent` | `createEditor()` This method is called by installUI to get the editor component of the `JSpinner`.
`protected LayoutManager` | `createLayout()` Create a `LayoutManager` that manages the `editor`, `nextButton`, and `previousButton` children of the JSpinner.
`protected Component` | `createNextButton()` Create a component that will replace the spinner models value with the object returned by `spinner.getNextValue`.
`protected Component` | `createPreviousButton()` Create a component that will replace the spinner models value with the object returned by `spinner.getPreviousValue`.
`protected PropertyChangeListener` | `createPropertyChangeListener()` Create a `PropertyChangeListener` that can be added to the JSpinner itself.
`static ComponentUI` | `createUI(JComponent c)` Returns a new instance of BasicSpinnerUI.
`protected void` | `installDefaults()` Initialize the `JSpinner` `border`, `foreground`, and `background`, properties based on the corresponding "Spinner.*" properties from defaults table.
`protected void` | `installListeners()` Initializes `propertyChangeListener` with a shared object that delegates interesting PropertyChangeEvents to protected methods.
`void` | `installUI(JComponent c)` Calls `installDefaults`, `installListeners`, and then adds the components returned by `createNextButton`, `createPreviousButton`, and `createEditor`.
`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.
`protected void` | `uninstallListeners()` Removes the `propertyChangeListener` added by installListeners.
`void` | `uninstallUI(JComponent c)` Calls `uninstallDefaults`, `uninstallListeners`, and then removes all of the spinners children.

Methods inherited from class javax.swing.plaf.ComponentUI
`contains, getAccessibleChild, getAccessibleChildrenCount, getMaximumSize, getMinimumSize, getPreferredSize, paint, update`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### spinner

    protected JSpinner spinner

  The spinner that we're a UI delegate for. Initialized by the `installUI` method, and reset to null by `uninstallUI`.

  See Also:
    `installUI(javax.swing.JComponent)`, `uninstallUI(javax.swing.JComponent)`

Constructor Detail

### BasicSpinnerUI

    public BasicSpinnerUI()

Method Detail

### createUI

    public static ComponentUI createUI(JComponent c)

  Returns a new instance of BasicSpinnerUI. SpinnerListUI delegates are allocated one per JSpinner.

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

### installUI

    public void installUI(JComponent c)

  Calls `installDefaults`, `installListeners`, and then adds the components returned by `createNextButton`, `createPreviousButton`, and `createEditor`.

  Overrides:
    `installUI` in class `ComponentUI`
  Parameters:
    `c` - the JSpinner
  See Also:
    `installDefaults()`, `installListeners()`, `createNextButton()`, `createPreviousButton()`, `createEditor()`

### uninstallUI

    public void uninstallUI(JComponent c)

  Calls `uninstallDefaults`, `uninstallListeners`, and then removes all of the spinners children.

  Overrides:
    `uninstallUI` in class `ComponentUI`
  Parameters:
    `c` - the JSpinner (not used)
  See Also:
    `ComponentUI.installUI(javax.swing.JComponent)`, `JComponent.updateUI()`

### installListeners

    protected void installListeners()

  Initializes `propertyChangeListener` with a shared object that delegates interesting PropertyChangeEvents to protected methods.

  This method is called by `installUI`.

  See Also:
    `replaceEditor(javax.swing.JComponent, javax.swing.JComponent)`, `uninstallListeners()`

### uninstallListeners

    protected void uninstallListeners()

  Removes the `propertyChangeListener` added by installListeners.

  This method is called by `uninstallUI`.

  See Also:
    `installListeners()`

### installDefaults

    protected void installDefaults()

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

  See Also:
    `uninstallDefaults()`, `installUI(javax.swing.JComponent)`, `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`.

  See Also:
    `installDefaults()`, `uninstallUI(javax.swing.JComponent)`

### createLayout

    protected LayoutManager createLayout()

  Create a `LayoutManager` that manages the `editor`, `nextButton`, and `previousButton` children of the JSpinner. These three children must be added with a constraint that identifies their role: "Editor", "Next", and "Previous". The default layout manager can handle the absence of any of these children.

  Returns:
    a LayoutManager for the editor, next button, and previous button.
  See Also:
    `createNextButton()`, `createPreviousButton()`, `createEditor()`

### createPropertyChangeListener

    protected PropertyChangeListener createPropertyChangeListener()

  Create a `PropertyChangeListener` that can be added to the JSpinner itself. Typically, this listener will call replaceEditor when the "editor" property changes, since it's the `SpinnerUI's` responsibility to add the editor to the JSpinner (and remove the old one). This method is called by `installListeners`.

  Returns:
    A PropertyChangeListener for the JSpinner itself
  See Also:
    `installListeners()`

### createPreviousButton

    protected Component createPreviousButton()

  Create a component that will replace the spinner models value with the object returned by `spinner.getPreviousValue`. By default the `previousButton` is a JButton who's `ActionListener` updates it's `JSpinner` ancestors model. If a previousButton isn't needed (in a subclass) then override this method to return null.

  Returns:
    a component that will replace the spinners model with the next value in the sequence, or null
  See Also:
    `installUI(javax.swing.JComponent)`, `createNextButton()`

### createNextButton

    protected Component createNextButton()

  Create a component that will replace the spinner models value with the object returned by `spinner.getNextValue`. By default the `nextButton` is a JButton who's `ActionListener` updates it's `JSpinner` ancestors model. If a nextButton isn't needed (in a subclass) then override this method to return null.

  Returns:
    a component that will replace the spinners model with the next value in the sequence, or null
  See Also:
    `installUI(javax.swing.JComponent)`, `createPreviousButton()`

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

  Returns:
    the JSpinners editor JComponent, spinner.getEditor() by default
  See Also:
    `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.

  See Also:
    `createEditor()`, `createPropertyChangeListener()`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| JavaTM 2 Platform Std. Ed. v1.4.1
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Submit a bug or feature
For further API reference and developer documentation, see Java 2 SDK SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Copyright 2002 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.