|
JavaTM 2 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 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。