Spec-Zone.ru › OpenJDK 24

Класс SpinnerDateModel

java.lang.Object
javax.swing.AbstractSpinnerModel
javax.swing.SpinnerDateModel
Все реализованные интерфейсы:
Serializable, SpinnerModel
public class SpinnerDateModel extends AbstractSpinnerModel implements Serializable
Модель для последовательностей дат. Верхняя и нижняя границы последовательности определяются свойствами, называемыми start и end, а величина приращения или уменьшения, вычисляемая методами nextValue и previousValue, определяется свойством calendarField. Свойства start и end могут быть установлены в значения, указывающие, что последовательность не имеет нижней или верхней границы.

Значение свойства calendarField должно быть одним из констант java.util.Calendar, определяющих поле внутри Calendar. Методы getNextValue и getPreviousValue изменяют дату вперёд или назад на эту величину. Например, если calendarField равно Calendar.DAY_OF_WEEK, то nextValue возвращает дату, которая на 24 часа позже текущей value, а previousValue возвращает дату, которая на 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
Однако некоторые интерфейсы могут установить calendarField перед подтверждением изменения, чтобы изменить поле под курсором. Если вы хотите изменить только одно поле, вы можете создать подкласс и проигнорировать вызовы setCalendarField.

Эта модель наследует ChangeListener. ChangeListeners уведомляются всякий раз, когда меняются свойства модели value, calendarField, start или end.

Since:
1.4
См. также:
  • 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<Date> start, Comparable<Date> end, int calendarField)
Создает SpinnerDateModel, представляющий последовательность дат между start и end.

Краткое описание методов

Модификатор и тип Метод Описание
int getCalendarField()
Возвращает поле Calendar, которое добавляется или вычитается методами nextValue и previousValue.
Date getDate()
Возвращает текущий элемент в этой последовательности дат.
Comparable<Date> getEnd()
Возвращает последнюю дату в последовательности.
Object getNextValue()
Возвращает следующую дату в последовательности или null, если следующая дата после end.
Object getPreviousValue()
Возвращает предыдущую дату в последовательности или null, если предыдущая дата перед start.
Comparable<Date> getStart()
Возвращает первую дату в последовательности.
Object getValue()
Возвращает текущий элемент в этой последовательности дат.
void setCalendarField(int calendarField)
Изменяет величину изменения значения даты, вычисляемую методами nextValue и previousValue.
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) равно 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).
См. также:
  • 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, 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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/javax/swing/SpinnerDateModel.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API