Class BasicSpinnerUI
java.lang.Object
javax.swing.plaf.ComponentUI
javax.swing.plaf.SpinnerUI
javax.swing.plaf.basic.BasicSpinnerUI
- Direct Known Subclasses:
SynthSpinnerUI
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected JComponent
This method is called by installUI to get the editor component of theJSpinner
.protected LayoutManager
Creates aLayoutManager
that manages theeditor
,nextButton
, andpreviousButton
children of the JSpinner.protected Component
Creates an increment button, i.e. component that replaces the spinner value with the object returned byspinner.getNextValue
.protected Component
Creates a decrement button, i.e. component that replaces the spinner value with the object returned byspinner.getPreviousValue
.protected PropertyChangeListener
Creates aPropertyChangeListener
that can be added to the JSpinner itself.static ComponentUI
Returns a new instance of BasicSpinnerUI.int
getBaseline
(JComponent c, int width, int height) Returns the baseline.Returns an enum indicating how the baseline of the component changes as the size changes.protected void
Initialize theJSpinner
border
,foreground
, andbackground
, properties based on the corresponding "Spinner.*" properties from defaults table.protected void
Installs the keyboard Actions onto the JSpinner.protected void
InitializesPropertyChangeListener
with a shared object that delegates interesting PropertyChangeEvents to protected methods.protected void
Installs the necessary listeners on the next button,c
, to update theJSpinner
in response to a user gesture.protected void
Installs the necessary listeners on the previous button,c
, to update theJSpinner
in response to a user gesture.void
CallsinstallDefaults
,installListeners
, and then adds the components returned bycreateNextButton
,createPreviousButton
, andcreateEditor
.protected void
replaceEditor
(JComponent oldEditor, JComponent newEditor) Called by thePropertyChangeListener
when theJSpinner
editor property changes.protected void
Sets theJSpinner's
layout manager to null.protected void
Removes thePropertyChangeListener
added by installListeners.void
CallsuninstallDefaults
,uninstallListeners
, and then removes all of the spinners children.Methods declared in class ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getMaximumSize, getMinimumSize, getPreferredSize, paint, update
Modifier and TypeMethodDescriptionboolean
contains
(JComponent c, int x, int y) Returnstrue
if the specified x,y location is contained within the look and feel's defined shape of the specified component.getAccessibleChild
(JComponent c, int i) Returns thei
thAccessible
child of the object.int
Returns the number of accessible children in the object.Returns the specified component's maximum size appropriate for the look and feel.Returns the specified component's minimum size appropriate for the look and feel.Returns the specified component's preferred size appropriate for the look and feel.void
paint
(Graphics g, JComponent c) Paints the specified component appropriately for the look and feel.void
update
(Graphics g, JComponent c) Notifies this UI delegate that it is time to paint the specified component.Methods declared in class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Modifier and TypeMethodDescriptionprotected Object
clone()
Creates and returns a copy of this object.boolean
Indicates whether some other object is "equal to" this one.protected void
finalize()
Deprecated, for removal: This API element is subject to removal in a future version.Finalization is deprecated and subject to removal in a future release.final Class
<?> getClass()
Returns the runtime class of thisObject
.int
hashCode()
Returns a hash code value for this object.final void
notify()
Wakes up a single thread that is waiting on this object's monitor.final void
Wakes up all threads that are waiting on this object's monitor.toString()
Returns a string representation of the object.final void
wait()
Causes the current thread to wait until it is awakened, typically by being notified or interrupted.final void
wait
(long timeoutMillis) Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.final void
wait
(long timeoutMillis, int nanos) Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
-
Field Details
-
spinner
The spinner that we're a UI delegate for. Initialized by theinstallUI
method, and reset to null byuninstallUI
.- See Also:
-
-
Constructor Details
-
BasicSpinnerUI
public BasicSpinnerUI()Constructs aBasicSpinnerUI
.
-
-
Method Details
-
createUI
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:
-
installUI
CallsinstallDefaults
,installListeners
, and then adds the components returned bycreateNextButton
,createPreviousButton
, andcreateEditor
.- Overrides:
installUI
in classComponentUI
- Parameters:
c
- the JSpinner- See Also:
-
uninstallUI
CallsuninstallDefaults
,uninstallListeners
, and then removes all of the spinners children.- Overrides:
uninstallUI
in classComponentUI
- Parameters:
c
- the JSpinner (not used)- See Also:
-
installListeners
protected void installListeners()InitializesPropertyChangeListener
with a shared object that delegates interesting PropertyChangeEvents to protected methods.This method is called by
installUI
.- See Also:
-
uninstallListeners
protected void uninstallListeners()Removes thePropertyChangeListener
added by installListeners.This method is called by
uninstallUI
.- See Also:
-
installDefaults
protected void installDefaults()Initialize theJSpinner
border
,foreground
, andbackground
, properties based on the corresponding "Spinner.*" properties from defaults table. TheJSpinners
layout is set to the value returned bycreateLayout
. This method is called byinstallUI
.- See Also:
-
uninstallDefaults
protected void uninstallDefaults()Sets theJSpinner's
layout manager to null. This method is called byuninstallUI
.- See Also:
-
installNextButtonListeners
Installs the necessary listeners on the next button,c
, to update theJSpinner
in response to a user gesture.- Parameters:
c
- Component to install the listeners on- Throws:
NullPointerException
- ifc
is null.- Since:
- 1.5
- See Also:
-
installPreviousButtonListeners
Installs the necessary listeners on the previous button,c
, to update theJSpinner
in response to a user gesture.- Parameters:
c
- Component to install the listeners on.- Throws:
NullPointerException
- ifc
is null.- Since:
- 1.5
- See Also:
-
createLayout
Creates aLayoutManager
that manages theeditor
,nextButton
, andpreviousButton
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:
-
createPropertyChangeListener
Creates aPropertyChangeListener
that can be added to the JSpinner itself. Typically, this listener will call replaceEditor when the "editor" property changes, since it's theSpinnerUI's
responsibility to add the editor to the JSpinner (and remove the old one). This method is called byinstallListeners
.- Returns:
- A PropertyChangeListener for the JSpinner itself
- See Also:
-
createPreviousButton
Creates a decrement button, i.e. component that replaces the spinner value with the object returned byspinner.getPreviousValue
. By default thepreviousButton
is aJButton
. If the decrement button is not needed this method should returnnull
.- Returns:
- a component that will replace the spinner's value with the
previous value in the sequence, or
null
- See Also:
-
createNextButton
Creates an increment button, i.e. component that replaces the spinner value with the object returned byspinner.getNextValue
. By default thenextButton
is aJButton
. If the increment button is not needed this method should returnnull
.- Returns:
- a component that will replace the spinner's value with the
next value in the sequence, or
null
- See Also:
-
createEditor
This method is called by installUI to get the editor component of theJSpinner
. By default it just returnsJSpinner.getEditor()
. Subclasses can overridecreateEditor
to return a component that contains the spinner's editor or null, if they're going to handle adding the editor to theJSpinner
in aninstallUI
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 withJSpinner.setEditor
. If you've overridden this method, then you'll probably want to overridereplaceEditor
as well.- Returns:
- the JSpinners editor JComponent, spinner.getEditor() by default
- See Also:
-
replaceEditor
Called by thePropertyChangeListener
when theJSpinner
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 ofreplaceEditor
should be coordinated with thecreateEditor
method.- Parameters:
oldEditor
- an old instance of editornewEditor
- a new instance of editor- See Also:
-
installKeyboardActions
protected void installKeyboardActions()Installs the keyboard Actions onto the JSpinner.- Since:
- 1.5
-
getBaseline
Returns the baseline.- Overrides:
getBaseline
in classComponentUI
- Parameters:
c
-JComponent
baseline is being requested forwidth
- the width to get the baseline forheight
- the height to get the baseline for- Returns:
- baseline or a value < 0 indicating there is no reasonable baseline
- Throws:
NullPointerException
- ifc
isnull
IllegalArgumentException
- if width or height is < 0- Since:
- 1.6
- See Also:
-
getBaselineResizeBehavior
Returns an enum indicating how the baseline of the component changes as the size changes.- Overrides:
getBaselineResizeBehavior
in classComponentUI
- Parameters:
c
-JComponent
to return baseline resize behavior for- Returns:
- an enum indicating how the baseline changes as the component size changes
- Throws:
NullPointerException
- ifc
isnull
- Since:
- 1.6
- See Also:
-