public class SpinnerDateModel extends AbstractSpinnerModel implements Serializable
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)
listenerList
コンストラクタと説明 |
---|
SpinnerDateModel()
最初の
value が現在の日付で、calendarField がCalendar.DAY_OF_MONTH に等しく、start とend の限度がないSpinnerDateModel を構築します。 |
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)
このシーケンスのDateの下限を変更します。
|
void |
setValue(Object value)
このシーケンスの現在の
Date を設定します。 |
addChangeListener, fireStateChanged, getChangeListeners, getListeners, removeChangeListener
public SpinnerDateModel(Date value, Comparable start, Comparable end, int calendarField)
start
からend
までの日付のシーケンスを表すSpinnerDateModel
を作成します。nextValue
メソッドとpreviousValue
メソッドは、現在の日付であるvalue
をcalendarField
のタイム・ユニット分前進または後退させて、シーケンスの要素を計算します。Calendar
field
の増加または減少についての詳細は、java.util.Calendar
のadd
メソッドを参照してください。
シーケンスの範囲に上限または下限のないことを示すために、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
が有効でない場合、または(start <= value <= end)
がfalseである場合。Calendar.add(int, int)
, setValue(java.lang.Object)
, setStart(java.lang.Comparable)
, setEnd(java.lang.Comparable)
, setCalendarField(int)
public SpinnerDateModel()
value
が現在の日付で、calendarField
がCalendar.DAY_OF_MONTH
に等しく、start
とend
の限度がないSpinnerDateModel
を構築します。public void setStart(Comparable start)
start
がnull
の場合、下限はありません。ここでは、境界のチェックは行われません。つまり、新しいstartの値が、コンストラクタによって適用される不変式(start <= value <= end)
を無効にすることがあります。これは、モデルの更新を単純にするためです。当然、nextValue
、previousValue
、setValue
の各メソッドを呼び出す前に、不変式がtrueになるようにする必要があります。
通常、このプロパティはDate
ですが、Comparable
でDateに対する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); } }上記の例では、
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の値が、コンストラクタによって適用される不変式(start <= value <= end)
を無効にすることがあります。これは、モデルの更新を単純にするためです。当然、nextValue
、previousValue
、setValue
の各メソッドを呼び出す前に、不変式がtrueになるようにする必要があります。
通常の場合、このプロパティはDate
ですが、Comparable
でDate
に対する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.MONTH
やCalendar.MINUTE
など、Calendar
フィールドの定数のいずれかである必要があります。nextValue
メソッドとpreviousValue
メソッドは、指定されたCalendar
フィールドを、Calendar.add
によって1ユニットずつ前後に移動するだけです。一部のUIではcalendarFieldを設定してから、編集を確定してカーソルの下にあるフィールドをスピンできるため、このメソッドを使用するときは注意が必要です。1フィールドのみをスピンする場合は、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
を返します。getNextValue
、インタフェース: SpinnerModel
Date
。次の日付がend
よりあとの場合はnull
。SpinnerModel.getNextValue()
, getPreviousValue()
, setCalendarField(int)
public Object getPreviousValue()
Date
を返します。前の日付がstart
より前の場合はnull
を返します。getPreviousValue
、インタフェース: SpinnerModel
Date
。前の日付がstart
より前の場合はnull
SpinnerModel.getPreviousValue()
, getNextValue()
, setCalendarField(int)
public Date getDate()
Date
のうち、現在の要素を返します。このメソッドは、(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)
を無効にすることがあります。当然、nextValue
、previousValue
、setValue
の各メソッドを呼び出す前に、不変式(start <= value <= maximum)
がtrueになるようにする必要があります。
value
が変更されると、このメソッドはChangeEvent
をトリガーします。
setValue
、インタフェース: SpinnerModel
value
- このシーケンスの現在のDate
(null
以外)IllegalArgumentException
- valueがnull
の場合、またはDate
でない場合getDate()
, getValue()
, AbstractSpinnerModel.addChangeListener(javax.swing.event.ChangeListener)
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.