public final class SpinnerAdapterFactory
extends java.lang.Object
SpinnerModel
implementations that are bound to
a ValueModel. Can be used to bind a ValueModel to instances of JSpinner.To keep the ValueModel and SpinnerModel synchronized, this class listens to changes in both sides and updates the other silently, i.e. without firing a duplicate change event.
Constraints:
The ValueModel's type must be compatible with the type required by the
referenced SpinnerModel. For example a SpinnerNumberModel
requires
Number
values.
Example:
// General Connection ValueModel levelModel = new PropertyAdapter(settings, "level", true); SpinnerModel spinnerModel = new SpinnerNumberModel(9, 5, 10, 1); Object defaultValue = new Integer(9); SpinnerAdapterFactory.connect(spinnerModel, levelModel, defaultValue); JSpinner levelSpinner = new JSpinner(spinnerModel); // Short Form ValueModel levelModel = new PropertyAdapter(settings, "level", true); SpinnerNumberModel spinnerModel = SpinnerAdapterFactory.createNumberAdapter(levelModel, 5, 10, 1); JSpinner levelSpinner = new JSpinner(spinnerModel);
ValueModel
,
SpinnerModel
,
JSpinner
Modifier and Type | Method and Description |
---|---|
static void |
connect(javax.swing.SpinnerModel spinnerModel,
ValueModel valueModel,
java.lang.Object defaultValue)
Connects the given ValueModel and SpinnerModel
by synchronizing their values.
|
static javax.swing.SpinnerDateModel |
createDateAdapter(ValueModel valueModel,
java.util.Date defaultDate)
Creates and returns a
SpinnerDateModel bound to the given
valueModel . |
static javax.swing.SpinnerDateModel |
createDateAdapter(ValueModel valueModel,
java.util.Date defaultDate,
java.lang.Comparable<java.util.Date> start,
java.lang.Comparable<java.util.Date> end,
int calendarField)
Creates and returns a
SpinnerDateModel that represents a sequence
of dates and is bound to the given valueModel . |
static javax.swing.SpinnerNumberModel |
createNumberAdapter(ValueModel valueModel,
int defaultValue,
int minValue,
int maxValue,
int stepSize)
Creates and returns a
SpinnerNumberModel that is connected to
the given ValueModel and that honors the specified minimum,
maximum and step values. |
static javax.swing.SpinnerNumberModel |
createNumberAdapter(ValueModel valueModel,
java.lang.Number defaultValue,
java.lang.Comparable<? extends java.lang.Number> minValue,
java.lang.Comparable<? extends java.lang.Number> maxValue,
java.lang.Number stepSize)
Creates and returns a
SpinnerNumberModel that is connected to
the given ValueModel and that honors the specified minimum,
maximum and step values. |
public static javax.swing.SpinnerDateModel createDateAdapter(ValueModel valueModel, java.util.Date defaultDate)
SpinnerDateModel
bound to the given
valueModel
. The calendarField
is equal to Calendar.DAY_OF_MONTH
; there are no
start
/end
limits.valueModel
- a Date
typed model that holds the spinner valuedefaultDate
- the date used if the valueModel's value is null
SpinnerDateModel
bound to the given
valueModel
without start and end limits using
Calendar.DAY_OF_MONTH
as calendar fieldjava.lang.NullPointerException
- if the valueModel or defaultDate is null
public static javax.swing.SpinnerDateModel createDateAdapter(ValueModel valueModel, java.util.Date defaultDate, java.lang.Comparable<java.util.Date> start, java.lang.Comparable<java.util.Date> end, int calendarField)
SpinnerDateModel
that represents a sequence
of dates and is bound to the given valueModel
.
The dates are between start
and end
. The
nextValue
and previousValue
methods
compute elements of the sequence by advancing or reversing
the current date value
by the
calendarField
time unit. For a precise description
of what it means to increment or decrement a Calendar
field
, see the add
method in
java.util.Calendar
.
The start
and end
parameters can be
null
to indicate that the range doesn't have an
upper or lower bound. If value
or
calendarField
is null
, or if both
start
and end
are specified and
minimum > maximum
then an
IllegalArgumentException
is thrown.
Similarly if (minimum <= value <= maximum)
is false,
an IllegalArgumentException is thrown.
This method has not been tested.
valueModel
- a Date
typed model that holds the spinner valuedefaultDate
- the date used if the valueModel's value is null
start
- the first date in the sequence or null
end
- the last date in the sequence or null
calendarField
- one of
Calendar.ERA
Calendar.YEAR
Calendar.MONTH
Calendar.WEEK_OF_YEAR
Calendar.WEEK_OF_MONTH
Calendar.DAY_OF_MONTH
Calendar.DAY_OF_YEAR
Calendar.DAY_OF_WEEK
Calendar.DAY_OF_WEEK_IN_MONTH
Calendar.AM_PM
Calendar.HOUR
Calendar.HOUR_OF_DAY
Calendar.MINUTE
Calendar.SECOND
Calendar.MILLISECOND
SpinnerDateModel
bound to the given
valueModel
using the specified start and end dates
and calendar field.java.lang.NullPointerException
- if the valueModel or defaultDate is null
java.lang.IllegalArgumentException
- if calendarField
isn't valid,
or if the following expression is
false: (start <= value <= end)
.Calendar
,
Date
public static javax.swing.SpinnerNumberModel createNumberAdapter(ValueModel valueModel, int defaultValue, int minValue, int maxValue, int stepSize)
SpinnerNumberModel
that is connected to
the given ValueModel
and that honors the specified minimum,
maximum and step values.valueModel
- an Integer
typed model that holds the spinner valuedefaultValue
- the number used if the valueModel's value is null
minValue
- the lower bound of the spinner numbermaxValue
- the upper bound of the spinner numberstepSize
- used to increment and decrement the current valueSpinnerNumberModel
that is connected to the given
ValueModel
java.lang.NullPointerException
- if the valueModel is null
public static javax.swing.SpinnerNumberModel createNumberAdapter(ValueModel valueModel, java.lang.Number defaultValue, java.lang.Comparable<? extends java.lang.Number> minValue, java.lang.Comparable<? extends java.lang.Number> maxValue, java.lang.Number stepSize)
SpinnerNumberModel
that is connected to
the given ValueModel
and that honors the specified minimum,
maximum and step values.valueModel
- a Number
typed model that holds the spinner valuedefaultValue
- the number used if the valueModel's value is null
minValue
- the lower bound of the spinner numbermaxValue
- the upper bound of the spinner numberstepSize
- used to increment and decrement the current valueSpinnerNumberModel
that is connected to the given
ValueModel
java.lang.NullPointerException
- if the valueModel or defaultValue is null
public static void connect(javax.swing.SpinnerModel spinnerModel, ValueModel valueModel, java.lang.Object defaultValue)
spinnerModel
- the underlying SpinnerModel implementationvalueModel
- provides a valuedefaultValue
- the value used if the valueModel's value is null
java.lang.NullPointerException
- if the spinnerModel, valueModel or defaultValue is null
Copyright © 2002-2010 JGoodies Karsten Lentzsch. All Rights Reserved.