|
JavaTM Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object javax.swing.AbstractSpinnerModel javax.swing.SpinnerDateModel
public class SpinnerDateModel
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
就会收到通知。
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 |
构造方法详细信息 |
---|
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)
public SpinnerDateModel()
SpinnerDateModel
,其初始 value
为当前日期,calendarField
等于 Calendar.DAY_OF_MONTH
,且没有 start
/end
限制。
方法详细信息 |
---|
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)
public Comparable getStart()
Date
。
start
属性的值setStart(java.lang.Comparable)
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)
public Comparable getEnd()
Date
。
end
属性的值setEnd(java.lang.Comparable)
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)
public int getCalendarField()
nextValue
和 previousValue
方法添加或去掉的 Calendar
字段。
calendarField
属性的值setCalendarField(int)
public Object getNextValue()
Date
,如果下一个日期在 end
之后,则返回 null
。
SpinnerModel
中的 getNextValue
Date
,如果下一个日期是在 end
之后,则返回 null
。SpinnerModel.getNextValue()
,
getPreviousValue()
,
setCalendarField(int)
public Object getPreviousValue()
Date
,如果上一个日期是在 start
之前,则返回 null
。
SpinnerModel
中的 getPreviousValue
Date
,如果上一个日期在 start
之前,则返回 null
SpinnerModel.getPreviousValue()
,
getNextValue()
,
setCalendarField(int)
public Date getDate()
Date
序列中的当前元素。此方法等效于 (Date)getValue
。
value
属性setValue(java.lang.Object)
public Object getValue()
Date
序列中的当前元素。
SpinnerModel
中的 getValue
value
属性setValue(java.lang.Object)
,
getDate()
public void setValue(Object value)
Date
。如果 value
为 null
,则抛出一个 IllegalArgumentException
。此处不进行边界检查:新值可能会使该构造方法强制执行的 (start <= value < end)
不变式失效。很自然,调用 nextValue
、previousValue
或 setValue
方法之前应该确保 (start <= value <= maximum)
不变式为 true。
如果 value
已经更改,则此方法会触发一个 ChangeEvent
。
SpinnerModel
中的 setValue
value
- 此序列的当前(非 null
)Date
IllegalArgumentException
- 如果值为 null
或不是一个 Date
getDate()
,
getValue()
,
AbstractSpinnerModel.addChangeListener(javax.swing.event.ChangeListener)
|
JavaTM Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。