Module java.desktop
Package javax.swing

Class SpinnerListModel

java.lang.Object
javax.swing.AbstractSpinnerModel
javax.swing.SpinnerListModel
所有已实现的接口:
Serializable, SpinnerModel

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的引用,因此如果基础序列的元素发生更改,应用程序需要通过调用fireStateChanged来通知ChangeListeners

此模型继承了一个ChangeListener。当模型的valuelist属性更改时,将通知ChangeListener

自版本:
1.4
参见:
  • Constructor Details

    • SpinnerListModel

      public SpinnerListModel(List<?> values)
      构造一个由指定List定义值序列的SpinnerModel。模型的初始值(当前元素)将是values.get(0)。如果valuesnull或大小为零,则抛出IllegalArugmentException
      参数:
      values - 此模型表示的序列
      抛出:
      IllegalArgumentException - 如果valuesnull或大小为零
    • SpinnerListModel

      public SpinnerListModel(Object[] values)
      构造一个由指定数组定义值序列的SpinnerModel。模型的初始值将是values[0]。如果valuesnull或长度为零,则抛出IllegalArgumentException
      参数:
      values - 此模型表示的序列
      抛出:
      IllegalArgumentException - 如果valuesnull或长度为零
    • SpinnerListModel

      public SpinnerListModel()
      构造一个有效空的SpinnerListModel。模型的列表将包含一个单一的"empty"字符串元素。
  • Method Details

    • getList

      public List<?> getList()
      返回定义此模型序列的List
      返回:
      list属性的值
      参见:
    • setList

      public void setList(List<?> list)
      更改定义此序列的列表,并将模型的value索引重置为零。请注意,list没有被复制,模型只是存储对它的引用。

      如果list与当前列表不相等,则此方法会触发一个ChangeEvent

      参数:
      list - 此模型表示的序列
      抛出:
      IllegalArgumentException - 如果listnull或长度为零
      参见:
    • getValue

      public Object getValue()
      返回序列的当前元素。
      指定者:
      getValue 在接口 SpinnerModel
      返回:
      value属性的值
      参见:
    • setValue

      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 - 如果指定的值不允许
      参见:
    • getNextValue

      public Object getNextValue()
      返回基础序列的下一个合法值,如果值已经是最后一个元素,则返回null
      指定者:
      getNextValue 在接口 SpinnerModel
      返回:
      基础序列的下一个合法值,如果值已经是最后一个元素,则返回null
      参见:
    • getPreviousValue

      public Object getPreviousValue()
      返回基础序列的前一个元素,如果值已经是第一个元素,则返回null
      指定者:
      getPreviousValue 在接口 SpinnerModel
      返回:
      基础序列的前一个元素,如果值已经是第一个元素,则返回null
      参见: