|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
javax.swing
类 SpinnerDateModel
java.lang.Object javax.swing.AbstractSpinnerModel javax.swing.SpinnerDateModel
- 所有已实现的接口:
- Serializable, SpinnerModel
-
public class SpinnerDateModel
- extends AbstractSpinnerModel
- implements Serializable
Date
序列的一个 SpinnerModel
。序列的上下边界由称为 start
和 end
的属性定义,而通过 nextValue
和 previousValue
方法计算的增加和减少的大小由称作 calendarField
的属性定义。start
和 end
属性可以为 null
,以指示序列没有下限和上限。
calendarField
属性的值必须是在 Calendar
内指定某个字段的其中一个 java.util.Calendar
常量。getNextValue
和 getPreviousValue
方法将日期向前或向后更改这些量。例如,如果 calendarField
为 Calendar.DAY_OF_WEEK
,则 nextValue
生成一个比当前 value
延后 24 小时的 Date
,而 previousValue
则生成一个提前 24 小时的 Date
。
calendarField
的合法值为:
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
此模型继承一个 ChangeListener
。每当模型 value
、calendarField
、start
或 end
属性发生变化时,该 ChangeListeners
就会收到通知。
- 从以下版本开始:
- 1.4
- 另请参见:
JSpinner
,SpinnerModel
,AbstractSpinnerModel
,SpinnerListModel
,SpinnerNumberModel
,Calendar.add(int, int)
字段摘要 |
---|
从类 javax.swing.AbstractSpinnerModel 继承的字段 |
---|
listenerList |
构造方法摘要 | |
---|---|
SpinnerDateModel() 构造一个 SpinnerDateModel ,其初始 value 为当前日期,calendarField 等于 Calendar.DAY_OF_MONTH ,且没有 start /end 限制。 |
|
SpinnerDateModel(Date value, Comparable start, Comparable end, int calendarField) 创建一个表示 start 和 end 之间的日期序列的 SpinnerDateModel 。 |
方法摘要 | |
---|---|
int |
getCalendarField() 返回由 nextValue 和 previousValue 方法添加或去掉的 Calendar 字段。 |
Date |
getDate() 返回此 Date 序列中的当前元素。 |
Comparable |
getEnd() 返回序列中的最后一个 Date 。 |
Object |
getNextValue() 返回序列中的下一个 Date ,如果下一个日期在 end 之后,则返回 null 。 |
Object |
getPreviousValue() 返回序列中上一个 Date ,如果上一个日期是在 start 之前,则返回 null 。 |
Comparable |
getStart() 返回序列中的第一个 Date 。 |
Object |
getValue() 返回此 Date 序列中的当前元素。 |
void |
setCalendarField(int calendarField) 更改由 nextValue 和 previousValue 方法计算的日期值更改的大小。 |
void |
setEnd(Comparable end) 更改此序列中 Date 的上限。 |
void |
setStart(Comparable start) 更改此序列中的日期下限。 |
void |
setValue(Object value) 设置此序列的当前 Date 。 |
从类 javax.swing.AbstractSpinnerModel 继承的方法 |
---|
addChangeListener, fireStateChanged, getChangeListeners, getListeners, removeChangeListener |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
SpinnerDateModel
public SpinnerDateModel(Date value, Comparable start, Comparable end, int calendarField)
-
创建一个表示
start
和end
之间的日期序列的SpinnerDateModel
。nextValue
和previousValue
方法通过向前或向后调整由calendarField
时间单位表示的当前日期value
计算该序列的元素。有关增加或减少Calendar
field
的含义的精确描述,请参阅java.util.Calendar
中的add
方法。start
和end
参数可以为null
,以指示该范围没有上下边界。如果value
或calendarField
为null
,或者指定了start
和end
且其值为mininum > maximum
,则抛出一个IllegalArgumentException
。同样,如果(minimum <= value <= maximum)
为 false,则抛出一个 IllegalArgumentException。- 参数:
value
- 该模型的当前(非null
)值start
- 该序列中的第一个日期,或null
end
- 该序列中的最后一个日期,或null
calendarField
- 该参数为下列值之一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
- 抛出:
IllegalArgumentException
- 如果value
或calendarField
为null
,如果calendarField
无效,或者下面的表达式为 false:(start <= value <= end)
。- 另请参见:
Calendar.add(int, int)
,setValue(java.lang.Object)
,setStart(java.lang.Comparable)
,setEnd(java.lang.Comparable)
,setCalendarField(int)
SpinnerDateModel
public SpinnerDateModel()
-
构造一个
SpinnerDateModel
,其初始value
为当前日期,calendarField
等于Calendar.DAY_OF_MONTH
,且没有start
/end
限制。
方法详细信息 |
---|
setStart
public void setStart(Comparable start)
-
更改此序列中的日期下限。如果
start
为null
,则不存在下限。此处不进行边界检查:新起始值可能会使该构造方法强制执行的(start <= value <= end)
不变式失效。这是为了简化对该模型的更新。很自然,调用nextValue
、previousValue
或setValue
方法之前应该确保该不变式为 true。该属性通常是一个
Date
,但是它可以使用一个具有用于 Date 的compareTo
方法的Comparable
。例如,start
可以是一个下列形式的类的实例:MyStartDate implements Comparable { long t = 12345; public int compareTo(Date d) { return (t < d.getTime() ? -1 : (t == d.getTime() ? 0 : 1)); } public int compareTo(Object o) { return compareTo((Date)o); } }
注意,如果传递给compareTo(Object)
的Object
不是Date
,则上面的示例将抛出一个ClassCastException
。如果
start
已经更改,则此方法会触发一个ChangeEvent
。 -
-
- 参数:
start
- 定义序列中的第一个日期- 另请参见:
getStart()
,setEnd(java.lang.Comparable)
,AbstractSpinnerModel.addChangeListener(javax.swing.event.ChangeListener)
getStart
public Comparable getStart()
-
返回序列中的第一个
Date
。 -
-
- 返回:
start
属性的值- 另请参见:
setStart(java.lang.Comparable)
setEnd
public void setEnd(Comparable end)
-
更改此序列中
Date
的上限。如果start
为null
,则不存在上限。此处不进行边界检查:新起始值可能会使该构造方法强制执行的(start <= value <= end)
不变式失效。这是为了简化对该模型的更新。很自然,调用nextValue
、previousValue
或setValue
方法之前应该确保该不变式为 true。该属性通常是一个
Date
,但是它可以使用一个具有用于Date
的compareTo
方法的Comparable
。请参见setStart
以获得一个示例。如果
end
已经更改,则此方法会触发一个ChangeEvent
。 -
-
- 参数:
end
- 定义序列中的最后一个日期- 另请参见:
getEnd()
,setStart(java.lang.Comparable)
,AbstractSpinnerModel.addChangeListener(javax.swing.event.ChangeListener)
getEnd
public Comparable getEnd()
-
返回序列中的最后一个
Date
。 -
-
- 返回:
end
属性的值- 另请参见:
setEnd(java.lang.Comparable)
setCalendarField
public void setCalendarField(int calendarField)
-
更改由
nextValue
和previousValue
方法计算的日期值更改的大小。calendarField
参数必须是其中一个Calendar
字段常量,如Calendar.MONTH
或Calendar.MINUTE
。nextValue
和previousValue
方法使用Calendar.add
方法将指定Calendar
字段只向前或向后移动一个单位。要慎重使用此方法,因为有些 UI 可能在向光标下旋转字段提交编辑之前设置 calendarField。如果只希望旋转一个字段,则可以为 setCalendarField 调用创建子类并忽略 setCalendarField 调用。 -
-
- 参数:
calendarField
- 该参数为下列值之一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
如果
calendarField
已经更改,则此方法会触发一个ChangeEvent
。- 另请参见:
getCalendarField()
,getNextValue()
,getPreviousValue()
,Calendar.add(int, int)
,AbstractSpinnerModel.addChangeListener(javax.swing.event.ChangeListener)
getCalendarField
public int getCalendarField()
-
返回由
nextValue
和previousValue
方法添加或去掉的Calendar
字段。 -
-
- 返回:
calendarField
属性的值- 另请参见:
setCalendarField(int)