Класс SpinnerDateModel
- Все реализуемые интерфейсы:
Serializable, SpinnerModel
public class SpinnerDateModel extends AbstractSpinnerModel implements Serializable
SpinnerModel для последовательностей Dates. Верхняя и нижняя границы последовательности задаются свойствами с именами 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.
- С версии:
- 1.4
- См. также:
Краткое описание полей
Поля, объявленные в классе AbstractSpinnerModel
listenerList
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
SpinnerDateModel() |
Создаёт SpinnerDateModel, у которого начальное значение value — текущая дата, calendarField равно Calendar.DAY_OF_MONTH, а ограничения start/end отсутствуют. |
SpinnerDateModel |
Создаёт SpinnerDateModel, представляющую последовательность дат между start и end. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
int |
getCalendarField() |
Возвращает поле Calendar, которое увеличивается или уменьшается методами nextValue и previousValue. |
Date |
getDate() |
Возвращает текущий элемент этой последовательности Dates. |
Comparable |
getEnd() |
Возвращает последнюю Date в последовательности. |
Object |
getNextValue() |
Возвращает следующую Date в последовательности или null, если следующая дата наступает после end. |
Object |
getPreviousValue() |
Возвращает предыдущую Date в последовательности или null, если предыдущая дата наступает до start. |
Comparable |
getStart() |
Возвращает первую Date в последовательности. |
Object |
getValue() |
Возвращает текущий элемент этой последовательности Dates. |
void |
setCalendarField |
Изменяет величину изменения даты, вычисляемого методами nextValue и previousValue. |
void |
setEnd |
Изменяет верхнюю границу для Dates в этой последовательности. |
void |
setStart |
Изменяет нижнюю границу для дат в этой последовательности. |
void |
setValue |
Задаёт текущее значение Date для этой последовательности. |
Методы, объявленные в классе AbstractSpinnerModel
addChangeListener, fireStateChanged, getChangeListeners, getListeners, removeChangeListener
Подробное описание конструкторов
SpinnerDateModel
public SpinnerDateModel(Date value, Comparable<Date> start, Comparable<Date> end, int calendarField)
SpinnerDateModel, представляющую последовательность дат между start и end. Методы nextValue и previousValue вычисляют элементы последовательности, сдвигая текущую дату value вперёд или назад на calendarField единиц времени. Точное описание того, что означает увеличение или уменьшение 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недопустимо или если следующее выражение ложно:(start <= value <= end). - См. также:
SpinnerDateModel
public SpinnerDateModel()
SpinnerDateModel, у которого начальное значение value — текущая дата, calendarField равно Calendar.DAY_OF_MONTH, а ограничения start/end отсутствуют.Подробное описание методов
setStart
public void setStart(Comparable<Date> start)
start равно null, нижняя граница отсутствует. Здесь проверка границ не выполняется: новое начальное значение может нарушить инвариант (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. Этот метод генерирует ChangeEvent, если значение start изменилось.
- Параметры:
-
start— задаёт первую дату в последовательности - См. также:
getStart
public Comparable<Date> getStart()
Date в последовательности.- Возвращает:
- значение свойства
start - См. также:
setEnd
public void setEnd(Comparable<Date> end)
Dates в этой последовательности. Если start равно null, верхняя граница отсутствует. Здесь проверка границ не выполняется: новое начальное значение может нарушить инвариант (start <= value <= end), обеспечиваемый конструкторами. Это упрощает обновление модели. Разумеется, перед вызовом методов nextValue, previousValue или setValue следует убедиться, что инвариант выполняется. Обычно это свойство имеет тип Date, однако можно использовать Comparable с методом compareTo для Dates. Пример см. в разделе setStart.
Этот метод генерирует ChangeEvent, если значение end изменилось.
- Параметры:
-
end— задаёт последнюю дату в последовательности - См. также:
getEnd
public Comparable<Date> getEnd()
Date в последовательности.- Возвращает:
- значение свойства
end - См. также:
setCalendarField
public void setCalendarField(int calendarField)
nextValue и previousValue. Параметр calendarField должен быть одной из констант поля Calendar, например Calendar.MONTH или Calendar.MINUTE. Методы nextValue и previousValue просто перемещают указанное поле Calendar вперёд или назад на одну единицу с помощью метода Calendar.add. Используйте этот метод с осторожностью: некоторые пользовательские интерфейсы могут задавать 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
Этот метод генерирует
ChangeEvent, если значениеcalendarFieldизменилось. -
- См. также:
getCalendarField
public int getCalendarField()
Calendar, которое увеличивается или уменьшается методами nextValue и previousValue.- Возвращает:
- значение свойства
calendarField - См. также:
getNextValue
public Object getNextValue()
Date в последовательности или null, если следующая дата наступает после end.- Определено в:
-
getNextValueв интерфейсеSpinnerModel - Возвращает:
- следующую
Dateв последовательности илиnull, если следующая дата наступает послеend. - См. также:
getPreviousValue
public Object getPreviousValue()
Date в последовательности или null, если предыдущая дата наступает до start.- Определено в:
-
getPreviousValueв интерфейсеSpinnerModel - Возвращает:
- предыдущую
Dateв последовательности илиnull, если предыдущая дата наступает доstart - См. также:
getDate
public Date getDate()
Dates. Этот метод эквивалентен (Date)getValue.- Возвращает:
- свойство
value - См. также:
getValue
public Object getValue()
Dates.- Определено в:
-
getValueв интерфейсеSpinnerModel - Возвращает:
- свойство
value - См. также:
setValue
public void setValue(Object value)
Date для этой последовательности. Если value равно null, выбрасывается IllegalArgumentException. Здесь проверка границ не выполняется: новое значение может нарушить инвариант (start <= value < end), обеспечиваемый конструкторами. Разумеется, перед вызовом методов (start <= value <= maximum), nextValue или previousValue следует убедиться, что инвариант setValue выполняется. Этот метод генерирует ChangeEvent, если значение value изменилось.
- Определено в:
-
setValueв интерфейсеSpinnerModel - Параметры:
-
value— текущее (неnull) значениеDateдля этой последовательности - Исключения:
-
IllegalArgumentException— если значение равноnullили не являетсяDate - См. также:
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/javax/swing/SpinnerDateModel.html