public class SpinnerListModel extends AbstractSpinnerModel implements Serializable
SpinnerModel
,其值由数组或一个被定义List
。
例如,创建一个由一个星期几的名称的数组定义的模型:
String[] days = new DateFormatSymbols().getWeekdays();
SpinnerModel model = new SpinnerListModel(Arrays.asList(days).subList(1, 8));
此类仅存储对数组的引用或List
,因此如果底层序列的元素发生更改, ChangeListeners
通过调用fireStateChanged
通知fireStateChanged
。
此模型继承了ChangeListener
。 当模型的value
或list
属性更改时, ChangeListener
将被通知。
JSpinner
, SpinnerModel
, AbstractSpinnerModel
, SpinnerNumberModel
, SpinnerDateModel
listenerList
Constructor and Description |
---|
SpinnerListModel()
构造一个有效的空
SpinnerListModel 。
|
SpinnerListModel(List<?> values)
构造一个
SpinnerModel ,其值序列由指定的List
List 。
|
SpinnerListModel(Object[] values)
构造一个
SpinnerModel ,其值序列由指定的数组定义。
|
Modifier and Type | Method and Description |
---|---|
List<?> |
getList()
返回定义此模型序列的
List 。
|
Object |
getNextValue()
返回基础序列的下一个合法值
null 如果值已经是最后一个元素。
|
Object |
getPreviousValue()
如果值已经是第一个元素,则返回底层序列的前一个元素或
null 。
|
Object |
getValue()
返回序列的当前元素。
|
void |
setList(List<?> list)
更改定义此序列的列表,并将模型
value 的索引重置为零。
|
void |
setValue(Object elt)
更改序列的当前元素并通知
ChangeListeners 。
|
addChangeListener, fireStateChanged, getChangeListeners, getListeners, removeChangeListener
public SpinnerListModel(List<?> values)
SpinnerModel
,其值序列由指定的List List
。
模型的初始值( 当前元素 )将为values.get(0)
。
如果values
为null
或具有零大小,则抛出IllegalArugmentException
。
values
- 该模型所代表的序列
IllegalArgumentException
- 如果
values
是
null
或零大小
public SpinnerListModel(Object[] values)
SpinnerModel
,其值序列由指定的数组定义。
模型的初始值为values[0]
。
如果values
为null
或长度为零,则会抛出IllegalArgumentException
。
values
- 该模型所代表的序列
IllegalArgumentException
- 如果
values
是
null
或零长度
public SpinnerListModel()
SpinnerListModel
。
该模型的列表将包含一个单独的"empty"
字符串元素。
public List<?> getList()
List
。
list
属性
setList(java.util.List<?>)
public void setList(List<?> list)
value
的索引重置为零。
请注意, list
未被复制,该模型仅存储对它的引用。
如果list
不等于当前列表,则此方法将触发ChangeEvent
。
list
- 该模型表示的序列
IllegalArgumentException
- 如果
list
为
null
或零长度
getList()
public Object getValue()
getValue
在接口
SpinnerModel
value
属性
SpinnerModel.getValue()
,
setValue(java.lang.Object)
public void setValue(Object elt)
ChangeListeners
。
如果指定的值不等于底层序列的元素,则抛出IllegalArgumentException
。
在以下示例中, setValue
调用将导致抛出异常:
String[] values = {"one", "two", "free", "four"};
SpinnerModel model = new SpinnerListModel(values);
model.setValue("TWO");
setValue
在接口
SpinnerModel
elt
- 将是模型当前值的序列元素
IllegalArgumentException
- 如果不允许指定的值
SpinnerModel.setValue(java.lang.Object)
,
getValue()
public Object getNextValue()
null
。
getNextValue
在接口
SpinnerModel
null
如果值已经是最后一个元素
SpinnerModel.getNextValue()
,
getPreviousValue()
public Object getPreviousValue()
null
。
getPreviousValue
在界面
SpinnerModel
null
如果值已经是第一个元素
SpinnerModel.getPreviousValue()
,
getNextValue()