|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectjavax.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 - 该序列中的第一个日期,或 nullend - 该序列中的最后一个日期,或 nullcalendarField - 该参数为下列值之一
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 中的 getNextValueDate,如果下一个日期是在 end 之后,则返回 null。SpinnerModel.getNextValue(),
getPreviousValue(),
setCalendarField(int)public Object getPreviousValue()
Date,如果上一个日期是在 start 之前,则返回 null。
SpinnerModel 中的 getPreviousValueDate,如果上一个日期在 start 之前,则返回 nullSpinnerModel.getPreviousValue(),
getNextValue(),
setCalendarField(int)public Date getDate()
Date 序列中的当前元素。此方法等效于 (Date)getValue。
value 属性setValue(java.lang.Object)public Object getValue()
Date 序列中的当前元素。
SpinnerModel 中的 getValuevalue 属性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 中的 setValuevalue - 此序列的当前(非 null)Date
IllegalArgumentException - 如果值为 null 或不是一个 DategetDate(),
getValue(),
AbstractSpinnerModel.addChangeListener(javax.swing.event.ChangeListener)
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。