Класс SpinnerDateModel
- java.lang.Object
-
- javax.swing.AbstractSpinnerModel
-
- javax.swing.SpinnerDateModel
- Все реализованные интерфейсы:
-
Serializable,SpinnerModel
public class SpinnerDateModel extends AbstractSpinnerModel implements Serializable
Модель для последовательностей Date. Верхняя и нижняя границы последовательности определяются свойствами, называемыми 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
- См. также:
-
JSpinner,SpinnerModel,AbstractSpinnerModel,SpinnerListModel,SpinnerNumberModel,Calendar.add(int, int), Сериализованная форма
Поля
Поля, объявленные в классе javax.swing.AbstractSpinnerModel
listenerList Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
SpinnerDateModel() | Создаёт |
SpinnerDateModel(Date value,
Comparable<Date> start,
Comparable<Date> end,
int calendarField) | Создаёт |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
int | getCalendarField() | Возвращает поле |
Date | getDate() | Возвращает текущий элемент в этой последовательности |
Comparable<Date> | getEnd() | Возвращает последнюю |
Object | getNextValue() | Возвращает следующую |
Object | getPreviousValue() | Возвращает предыдущую |
Comparable<Date> | getStart() | Возвращает первую |
Object | getValue() | Возвращает текущий элемент в этой последовательности |
void | setCalendarField(int calendarField) | Изменяет размер изменения значения даты, вычисляемого методами |
void | setEnd(Comparable<Date> end) | Изменяет верхнюю границу для |
void | setStart(Comparable<Date> start) | Изменяет нижнюю границу для дат в этой последовательности. |
void | setValue(Object value) | Устанавливает текущее значение |
Методы, объявленные в классе javax.swing.AbstractSpinnerModel
addChangeListener, fireStateChanged, getChangeListeners, getListeners, removeChangeListener Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Подробное описание конструкторов
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) ложно, выбрасывается 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). - См. также:
-
Calendar.add(int, int),setValue(java.lang.Object),setStart(java.lang.Comparable<java.util.Date>),setEnd(java.lang.Comparable<java.util.Date>),setCalendarField(int)
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(),setEnd(java.lang.Comparable<java.util.Date>),AbstractSpinnerModel.addChangeListener(javax.swing.event.ChangeListener)
getStart
public Comparable<Date> getStart()
Возвращает первую Date в последовательности.
- Возвращает:
- значение свойства
start - См. также:
setStart(java.lang.Comparable<java.util.Date>)
setEnd
public void setEnd(Comparable<Date> end)
Изменяет верхнюю границу Date в этой последовательности. Если start равно null, то верхней границы нет. Здесь не выполняется проверка границ: новое начальное значение может нарушить инвариант (start <= value <= end), заданный конструкторами. Естественно, необходимо убедиться, что инвариант верен перед вызовом методов nextValue, previousValue, или setValue.
Обычно это свойство является Date, однако можно использовать Comparable с методом compareTo для Date. Смотрите пример в setStart.
Этот метод вызывает ChangeEvent, если end изменился.
- Параметры:
-
end- определяет последнюю дату в последовательности - См. также:
-
getEnd(),setStart(java.lang.Comparable<java.util.Date>),AbstractSpinnerModel.addChangeListener(javax.swing.event.ChangeListener)
getEnd
public Comparable<Date> getEnd()
Возвращает последнюю Date в последовательности.
- Возвращает:
- значение свойства
end - См. также:
setEnd(java.lang.Comparable<java.util.Date>)
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(),getNextValue(),getPreviousValue(),Calendar.add(int, int),AbstractSpinnerModel.addChangeListener(javax.swing.event.ChangeListener)
getCalendarField
public int getCalendarField()
Возвращает поле Calendar , к которому добавляется или из которого вычитается значение методами nextValue и previousValue.
- Возвращает:
- значение свойства
calendarField - См. также:
setCalendarField(int)
getNextValue
public Object getNextValue()
Возвращает следующую Date в последовательности или null, если следующая дата следует после end.
- Определено в:
-
getNextValueв интерфейсеSpinnerModel - Возвращает:
- следующую
Dateв последовательности илиnull, если следующая дата следует послеend. - См. также:
-
SpinnerModel.getNextValue(),getPreviousValue(),setCalendarField(int)
getPreviousValue
public Object getPreviousValue()
Возвращает предыдущую Date в последовательности или null, если предыдущая дата предшествует start.
- Определено в:
-
getPreviousValueв интерфейсеSpinnerModel - Возвращает:
- предыдущую
Dateв последовательности илиnull, если предыдущая дата предшествуетstart - См. также:
-
SpinnerModel.getPreviousValue(),getNextValue(),setCalendarField(int)
getDate
public Date getDate()
Возвращает текущий элемент в этой последовательности Date. Этот метод эквивалентен (Date)getValue.
- Возвращает:
- свойство
value - См. также:
setValue(java.lang.Object)
getValue
public Object getValue()
Возвращает текущий элемент в этой последовательности Date.
- Определено в:
-
getValueв интерфейсеSpinnerModel - Возвращает:
- свойство
value - См. также:
-
setValue(java.lang.Object),getDate()
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 - См. также:
-
getDate(),getValue(),AbstractSpinnerModel.addChangeListener(javax.swing.event.ChangeListener)
© 1993, 2020, 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/11/docs/api/java.desktop/javax/swing/SpinnerDateModel.html