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, removeChangeListenerpublic 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 - シーケンスの先頭の日付または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が有効でない場合、または(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、インタフェース: SpinnerModelDate。次の日付がendよりあとの場合はnull。SpinnerModel.getNextValue(), getPreviousValue(), setCalendarField(int)public Object getPreviousValue()
Dateを返します。前の日付がstartより前の場合はnullを返します。getPreviousValue、インタフェース: SpinnerModelDate。前の日付がstartより前の場合はnullSpinnerModel.getPreviousValue(), getNextValue(), setCalendarField(int)public Date getDate()
Dateのうち、現在の要素を返します。このメソッドは、(Date)getValueと同等です。valueプロパティsetValue(java.lang.Object)public Object getValue()
Dateのうち、現在の要素を返します。getValue、インタフェース: SpinnerModelvalueプロパティ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、インタフェース: SpinnerModelvalue - このシーケンスの現在の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.