public class SpinnerDateModel extends AbstractSpinnerModel implements Serializable
SpinnerModel为Date的Date 。
序列的上限和下限被称为属性定义start和end ,并通过所计算的增加或减少的大小nextValue种previousValue方法由称为属性定义calendarField 。
start和end属性可以是null以表示序列没有下限或上限。
该值calendarField属性必须是一个java.util.Calendar一个内指定一个字段的常量Calendar 。 getNextValue和getPreviousValue方法将日期向前或向后更改此金额。 例如,如果calendarField是Calendar.DAY_OF_WEEK ,则nextValue产生Date这是24小时后的电流value和previousValue产生Date这之前24小时。
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 。 该ChangeListeners通知每当型号value , calendarField , start ,或end性能的变化。
JSpinner , SpinnerModel , AbstractSpinnerModel , SpinnerListModel , SpinnerNumberModel , Calendar.add(int, int)
listenerList| Constructor and Description |
|---|
SpinnerDateModel()
构造一个
SpinnerDateModel ,其初始
value是当前日期,
calendarField等于
Calendar.DAY_OF_MONTH ,以及用于其中有没有
start /
end限制。
|
SpinnerDateModel(Date value, Comparable start, Comparable end, int calendarField)
创建一个
SpinnerDateModel ,代表
start和
end之间的日期序列。
|
| Modifier and Type | Method and Description |
|---|---|
int |
getCalendarField()
返回
nextValue和
previousValue方法添加或减去的
Calendar字段。
|
Date |
getDate()
返回
Date的序列中的当前元素。
|
Comparable |
getEnd()
返回序列中的最后
Date 。
|
Object |
getNextValue()
返回下一个
Date序列中,或
null如果下一个日期是后
end 。
|
Object |
getPreviousValue()
返回以前
Date的顺序,或
null ,如果上一个日期是前
start 。
|
Comparable |
getStart()
返回序列中的第一个
Date 。
|
Object |
getValue()
返回此序列中的当前元素
Date s。
|
void |
setCalendarField(int calendarField)
更改由
nextValue和
previousValue方法计算的日期值更改的大小。
|
void |
setEnd(Comparable end)
按此顺序更改
Date的上限。
|
void |
setStart(Comparable start)
更改此顺序中日期的下限。
|
void |
setValue(Object value)
设置此序列的当前
Date 。
|
addChangeListener, fireStateChanged, getChangeListeners, getListeners, removeChangeListenerpublic SpinnerDateModel(Date value, Comparable start, Comparable end, int calendarField)
SpinnerDateModel ,表示start和end之间的日期序列。
nextValue和previousValue方法通过按照calendarField时间单位推进或反转当前日期value来计算序列的元素。
对于意味着什么递增或递减一个精确的描述Calendar field ,参见add在方法java.util.Calendar 。
start和end参数可以为null以指示范围不具有上限或下限。 如果value或calendarField是null ,或者如果两个start和end指定和minimum > 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)函数执行的(start <= value <= end)不变量无效。
这是为了简化更新模型。
当然应该保证不变的是调用之前真正nextValue , previousValue ,或setValue方法。
通常这个属性是Date但是可以使用Comparable和compareTo的日期。 例如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);
}
}
注意上面的例子会抛出一个ClassCastException如果Object传递给compareTo(Object)不是一个Date 。
如果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)函数执行的885326525245不变量无效。
这是为了简化更新模型。
当然,应该保证不变的是调用之前真正nextValue , previousValue ,或setValue方法。
通常这个属性是Date但是对于Date s可以使用Comparable compareTo方法。 参见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由一个单元与场向前或向后Calendar.add方法。
您应该谨慎使用此方法,因为一些UI可能会在提交编辑之前设置calendarField以旋转光标下的字段。
如果你只想要一个字段旋转,你可以子类化并忽略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序列中,或
null如果下一个日期是后
end 。
getNextValue在接口
SpinnerModel
Date顺序,或
null如果下一个日期是在
end之后。
SpinnerModel.getNextValue() ,
getPreviousValue() ,
setCalendarField(int)
public Object getPreviousValue()
Date的顺序,或
null ,如果上一个日期是前
start 。
getPreviousValue在接口
SpinnerModel
Date顺序,或
null如果以前的日期是在
start之前
SpinnerModel.getPreviousValue() ,
getNextValue() ,
setCalendarField(int)
public Date getDate()
Date s。
此方法相当于(Date)getValue 。
value属性
setValue(java.lang.Object)
public Object getValue()
Date的序列中的当前元素。
getValue在接口
SpinnerModel
value属性
setValue(java.lang.Object) ,
getDate()
public void setValue(Object value)
Date 。
如果value是null ,则抛出一个IllegalArgumentException 。
这里没有边界检查:新值可能会使(start <= value < end)函数执行的(start <= value < end)不变量无效。
当然,应该确保(start <= value <= maximum)不变的是调用之前真正nextValue , previousValue ,或setValue方法。
如果value已更改,此方法将触发ChangeEvent 。
setValue在界面
SpinnerModel
value - 此序列的当前(非
null )
Date
IllegalArgumentException - 如果值为
null或不是
Date
getDate() ,
getValue() ,
AbstractSpinnerModel.addChangeListener(javax.swing.event.ChangeListener)
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.