public class SpinnerNumberModel extends AbstractSpinnerModel implements Serializable
SpinnerModel
的数字序列。
序列的上限和下限由称为minimum
和maximum
。
由nextValue
和previousValue
方法计算的增加或减少的大小由称为stepSize
的属性定义。
minimum
和maximum
属性可以是null
,以表明序列没有下限或上限。
该类中的所有属性都是根据两种通用类型定义的: Number
和Comparable
,以便可以容纳所有Java数字类型。
在内部,有只为值类型为原始的一个支持Number
类型: Double
, Float
, Long
, Integer
, Short
,或Byte
。
要创建一个SpinnerNumberModel
的整数范围从零到一百,五十作为初始值,可以写:
Integer value = new Integer(50);
Integer min = new Integer(0);
Integer max = new Integer(100);
Integer step = new Integer(1);
SpinnerNumberModel model = new SpinnerNumberModel(value, min, max, step);
int fifty = model.getNumber().intValue();
用于整数和双打的旋转器是常见的,因此提供了这些情况的特殊构造函数。 例如,在前面的例子中创建模型,还可以写:
SpinnerNumberModel model = new SpinnerNumberModel(50, 0, 100, 1);
此模型继承了ChangeListener
。 该ChangeListeners
通知每当模型value
, stepSize
, minimum
,或maximum
性能的变化。
JSpinner
, SpinnerModel
, AbstractSpinnerModel
, SpinnerListModel
, SpinnerDateModel
listenerList
Constructor and Description |
---|
SpinnerNumberModel()
构造一个
SpinnerNumberModel ,没有
minimum 或
maximum 值,
stepSize 等于1,初始值为零。
|
SpinnerNumberModel(double value, double minimum, double maximum, double stepSize)
构造一个
SpinnerNumberModel 具有指定
value ,
minimum /
maximum 界限,和
stepSize 。
|
SpinnerNumberModel(int value, int minimum, int maximum, int stepSize)
构造一个
SpinnerNumberModel 具有指定
value ,
minimum /
maximum 界限,和
stepSize 。
|
SpinnerNumberModel(Number value, Comparable minimum, Comparable maximum, Number stepSize)
构造一个
SpinnerModel ,表示从
minimum 到
maximum 一个封闭序列。
|
Modifier and Type | Method and Description |
---|---|
Comparable |
getMaximum()
返回序列中的最后一个数字。
|
Comparable |
getMinimum()
返回此序列中的第一个数字。
|
Object |
getNextValue()
返回序列中的下一个数字。
|
Number |
getNumber()
返回序列的当前元素的值。
|
Object |
getPreviousValue()
返回序列中的前一个数字。
|
Number |
getStepSize()
返回由
getNextValue 和
getPreviousValue 方法计算的值变化的大小。
|
Object |
getValue()
返回序列的当前元素的值。
|
void |
setMaximum(Comparable maximum)
更改此序列中数字的上限。
|
void |
setMinimum(Comparable minimum)
更改此序列中数字的下限。
|
void |
setStepSize(Number stepSize)
更改由
getNextValue 和
getPreviousValue 方法计算的值变化的大小。
|
void |
setValue(Object value)
设置此序列的当前值。
|
addChangeListener, fireStateChanged, getChangeListeners, getListeners, removeChangeListener
public SpinnerNumberModel(Number value, Comparable minimum, Comparable maximum, Number stepSize)
SpinnerModel
,代表从minimum
到maximum
一个封闭序列。
nextValue
和previousValue
方法通过分别加或减stepSize
来计算序列的元素。
所有参数必须是相互Comparable
, value
和stepSize
必须的情况下Integer
Long
, Float
,或Double
。
minimum
和maximum
参数可以是null
来表示范围没有上限或下限。 如果value
或stepSize
是null
,或者如果两个minimum
和maximum
指定和minimum > maximum
那么IllegalArgumentException
被抛出。 类似地,如果(minimum <= value <= maximum
)为false,则抛出IllegalArgumentException
。
value
- 模型的当前(非
null
)值
minimum
- 序列中的第一个数字或
null
maximum
- 序列中的最后一个数字或
null
stepSize
- 序列元素之间的差异
IllegalArgumentException
- 如果stepSize或值为
null
或如果以下表达式为false:
minimum <= value <= maximum
public SpinnerNumberModel(int value, int minimum, int maximum, int stepSize)
SpinnerNumberModel
具有指定
value
,
minimum
/
maximum
界限,和
stepSize
。
value
- 模型的当前值
minimum
- 序列中的第一个数字
maximum
- 序列中的最后一个数字
stepSize
- 序列元素之间的差异
IllegalArgumentException
- 如果以下表达式为false:
minimum <= value <= maximum
public SpinnerNumberModel(double value, double minimum, double maximum, double stepSize)
SpinnerNumberModel
具有指定
value
,
minimum
/
maximum
界限,和
stepSize
。
value
- 模型的当前值
minimum
- 序列中的第一个数字
maximum
- 序列中的最后一个数字
stepSize
- 序列元素之间的差异
IllegalArgumentException
- 如果以下表达式为false:
minimum <= value <= maximum
public SpinnerNumberModel()
SpinnerNumberModel
,没有
minimum
或
maximum
值,
stepSize
等于1,初始值为零。
public void setMinimum(Comparable minimum)
minimum
是null
,那么没有下限。
没有限制检查在这里完成
新的minimum
值可能会使(minimum <= value <= maximum)
函数执行的(minimum <= value <= maximum)不变量无效。
这是为了简化更新该模式,自然应该确保该等式是调用之前真正getNextValue
, getPreviousValue
,或setValue
方法。
典型地,这个属性是一个Number
的相同类型的value
然而有可能使用任何Comparable
与compareTo
方法用于Number
用相同类型作为值。 例如,如果值是Long
, minimum
可能是这样定义的Date子类:
MyDate extends Date { // Date already implements Comparable
public int compareTo(Long o) {
long t = getTime();
return (t < o.longValue() ? -1 : (t == o.longValue() ? 0 : 1));
}
}
如果minimum
已更改,此方法将触发ChangeEvent
。
minimum
- 一个
Comparable
,具有
compareTo
的
Number
与
Number
相同的
value
getMinimum()
,
setMaximum(java.lang.Comparable)
,
SpinnerModel.addChangeListener(javax.swing.event.ChangeListener)
public Comparable getMinimum()
minimum
财产
setMinimum(java.lang.Comparable)
public void setMaximum(Comparable maximum)
maximum
是null
,那么没有上限。
没有限制检查在这里完成
新的maximum
值可能会使(minimum <= value < maximum)
函数执行的(minimum <= value < maximum)不变量失效。
这是为了简化更新该模式,自然应该确保该等式是调用之前真正next
, previous
,或setValue
方法。
典型地,这个属性是一个Number
的相同类型的value
然而有可能使用任何Comparable
与compareTo
方法用于Number
用相同类型作为值。 参见setMinimum
的一个例子。
如果maximum
已更改,此方法将触发ChangeEvent
。
maximum
-一个
Comparable
具有
compareTo
为方法
Number
s的相同类型
value
getMaximum()
,
setMinimum(java.lang.Comparable)
,
SpinnerModel.addChangeListener(javax.swing.event.ChangeListener)
public Comparable getMaximum()
maximum
属性
setMaximum(java.lang.Comparable)
public void setStepSize(Number stepSize)
getNextValue
和getPreviousValue
方法计算的值变化的大小。
一个IllegalArgumentException
如果抛出stepSize
是null
。
如果stepSize
已更改,此方法将触发ChangeEvent
。
stepSize
- 由
getNextValue
和
getPreviousValue
方法计算的价值变动的大小
getNextValue()
,
getPreviousValue()
,
getStepSize()
,
SpinnerModel.addChangeListener(javax.swing.event.ChangeListener)
public Number getStepSize()
getNextValue
和
getPreviousValue
方法计算的值变化的大小。
stepSize
属性
setStepSize(java.lang.Number)
public Object getNextValue()
getNextValue
在界面
SpinnerModel
value + stepSize
或
null
如果总和超过
maximum
。
SpinnerModel.getNextValue()
,
getPreviousValue()
,
setStepSize(java.lang.Number)
public Object getPreviousValue()
getPreviousValue
在接口
SpinnerModel
value - stepSize
或
null
如果总和小于
minimum
。
SpinnerModel.getPreviousValue()
,
getNextValue()
,
setStepSize(java.lang.Number)
public Number getNumber()
setValue(java.lang.Object)
public Object getValue()
getValue
在界面
SpinnerModel
setValue(java.lang.Object)
,
getNumber()
public void setValue(Object value)
value
是null
,或者不是Number
,则抛出一个IllegalArgumentException
。
没有限制检查在这里完成
新值可能使(minimum <= value <= maximum)
函数执行的(minimum <= value <= maximum)不变量无效。
也可以将该值设置为序列中不会自然发生的值,即不对stepSize进行模数化的stepSize
。
这是为了简化更新模型,并适应不想限制用户直接输入的值的旋转器。
当然,应该确保(minimum <= value <= maximum)
不变的是调用之前真正next
, previous
,或setValue
方法。
如果值已更改,此方法将触发ChangeEvent
。
setValue
在界面
SpinnerModel
value
- 该序列的当前(非
null
)
Number
IllegalArgumentException
- 如果
value
是
null
或不是
Number
getNumber()
,
getValue()
,
SpinnerModel.addChangeListener(javax.swing.event.ChangeListener)