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