Класс SpinnerNumberModel
- Все реализованные интерфейсы:
-
Serializable,SpinnerModel
public class SpinnerNumberModel extends AbstractSpinnerModel implements Serializable
minimum и maximum. Размер приращения или уменьшения, вычисляемый методами nextValue и previousValue, определяется свойством stepSize. Свойства minimum и maximum могут быть установлены в null для указания того, что у последовательности нет нижней или верхней границы. Все свойства в этом классе определяются с помощью двух общих типов: Number и Comparable, чтобы можно было использовать все числовые типы Java. Внутри поддерживаются только значения, тип которых является одним из примитивных типов Number: Double, Float, Long, Integer, Short, или Byte. Чтобы создать модель для целочисленного диапазона от нуля до ста, с начальным значением пятьдесят, можно написать:
Integer value = Integer.valueOf(50); Integer min = Integer.valueOf(0); Integer max = Integer.valueOf(100); Integer step = Integer.valueOf(1); SpinnerNumberModel model = new SpinnerNumberModel(value, min, max, step); int fifty = model.getNumber().intValue();
Спиннеры для целых чисел и чисел с плавающей точкой являются распространенными, поэтому предоставляются специальные конструкторы для этих случаев. Например, чтобы создать модель в предыдущем примере, можно также написать:
SpinnerNumberModel model = new SpinnerNumberModel(50, 0, 100, 1);
Эта модель наследует ChangeListener. Модель ChangeListeners уведомляется всякий раз, когда изменяются свойства value, stepSize, minimum, или maximum модели.
- С тех пор:
- 1.4
- См. также:
Краткое описание полей
Поля, объявленные в классе javax.swing.AbstractSpinnerModel
listenerList
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
SpinnerNumberModel() |
Создает модель SpinnerNumberModel без значения minimum или maximum, значение stepSize равно единице и начальное значение равно нулю. |
SpinnerNumberModel |
Создает модель SpinnerNumberModel со значениями value, minimum/maximum границ и stepSize. |
SpinnerNumberModel |
Создает модель SpinnerNumberModel со значениями value, minimum/maximum границ и stepSize. |
SpinnerNumberModel |
Создает модель SpinnerModel, представляющую замкнутую последовательность чисел от minimum до maximum. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Comparable<?> |
getMaximum() |
Возвращает последнее число в последовательности. |
Comparable<?> |
getMinimum() |
Возвращает первое число в этой последовательности. |
Object |
getNextValue() |
Возвращает следующее число в последовательности. |
Number |
getNumber() |
Возвращает значение текущего элемента последовательности. |
Object |
getPreviousValue() |
Возвращает предыдущее число в последовательности. |
Number |
getStepSize() |
Возвращает размер изменения значения, вычисляемого методами getNextValue и getPreviousValue. |
Object |
getValue() |
Возвращает значение текущего элемента последовательности. |
void |
setMaximum |
Изменяет верхнюю границу чисел в этой последовательности. |
void |
setMinimum |
Изменяет нижнюю границу чисел в этой последовательности. |
void |
setStepSize |
Изменяет размер изменения значения, вычисляемого методами getNextValue и getPreviousValue. |
void |
setValue |
Устанавливает текущее значение для этой последовательности. |
Методы, объявленные в классе javax.swing.AbstractSpinnerModel
addChangeListener, fireStateChanged, getChangeListeners, getListeners, removeChangeListener
Подробное описание конструкторов
SpinnerNumberModel
public SpinnerNumberModel(Number value, Comparable<?> minimum, Comparable<?> maximum, Number stepSize)
SpinnerModel, представляющий замкнутую последовательность чисел от minimum до maximum. Методы nextValue и previousValue вычисляют элементы последовательности, соответственно, добавляя или вычитая stepSize. Все параметры должны быть взаимосвязаны Comparable, value и stepSize должны быть экземплярами Integer Long, Float, или Double. Параметры minimum и maximum могут быть null для указания того, что диапазон не имеет верхней или нижней границы. Если value или stepSize равны null, или если оба minimum и maximum указаны и minimum > maximum, то генерируется IllegalArgumentException. Аналогично, если (minimum <= value <= maximum) ложно, генерируется IllegalArgumentException.
- Параметры:
-
value- текущее (неnull) значение модели -
minimum- первое число в последовательности илиnull -
maximum- последнее число в последовательности илиnull -
stepSize- разность между элементами последовательности - Исключения:
-
IllegalArgumentException- если stepSize или value равноnullили если следующее выражение ложно:minimum <= value <= maximum
SpinnerNumberModel
public SpinnerNumberModel(int value, int minimum, int maximum, int stepSize)
SpinnerNumberModel со значениями value, minimum/maximum границами и stepSize. - Параметры:
-
value- текущее значение модели -
minimum- первое число в последовательности -
maximum- последнее число в последовательности -
stepSize- разность между элементами последовательности - Исключения:
-
IllegalArgumentException- если следующее выражение ложно:minimum <= value <= maximum
SpinnerNumberModel
public SpinnerNumberModel(double value, double minimum, double maximum, double stepSize)
SpinnerNumberModel со значениями value, minimum/maximum границами и stepSize. - Параметры:
-
value- текущее значение модели -
minimum- первое число в последовательности -
maximum- последнее число в последовательности -
stepSize- разность между элементами последовательности - Исключения:
-
IllegalArgumentException- если следующее выражение ложно:minimum <= value <= maximum
SpinnerNumberModel
public SpinnerNumberModel()
SpinnerNumberModel без minimum или maximum значения, stepSize равное единице, и начальным значением ноль.Подробное описание методов
setMinimum
public void setMinimum(Comparable<?> minimum)
minimum равно null, то нижней границы нет. Проверка границ здесь не выполняется; новое значение minimum может нарушить (minimum <= value <= maximum) инвариант, установленный конструкторами. Это упрощает обновление модели; естественно, необходимо убедиться, что инвариант верен перед вызовом методов getNextValue, getPreviousValue, или setValue. Обычно этот параметр является Number того же типа, что и value, однако возможно использовать любой объект Comparable с методом compareTo для объекта Number того же типа, что и значение. Например, если значение было Long, то minimum может быть подклассом Date, определённым так:
MyDate extends Date { // Date already implements Comparable
public int compareTo(Long o) {
long t = getTime();
return (t < o.longValue() ? -1 : (t == o.longValue() ? 0 : 1));
}
}
Этот метод вызывает ChangeEvent если minimum изменился.
- Параметры:
-
minimum-Comparableс методомcompareToдляNumberтого же типа, что иvalue - См. также:
getMinimum
public Comparable<?> getMinimum()
- Возвращает:
- значение свойства
minimum - См. также:
setMaximum
public void setMaximum(Comparable<?> maximum)
maximum равно null, то верхней границы нет. Проверка границ здесь не выполняется; новое значение maximum может нарушить (minimum <= value < maximum) инвариант, установленный конструкторами. Это упрощает обновление модели; естественно, необходимо убедиться, что инвариант верен перед вызовом методов next, previous, или setValue. Обычно это свойство - Number того же типа, что и value, но можно использовать любой объект Comparable с методом compareTo для получения объекта Number того же типа, что и значение. См. setMinimum(Comparable) для примера.
Этот метод вызывает ChangeEvent если maximum изменился.
- Параметры:
-
maximum-Comparableс методомcompareToдляNumberтого же типа, что иvalue - См. также:
getMaximum
public Comparable<?> getMaximum()
- Возвращает:
- значение свойства
maximum - См. также:
setStepSize
public void setStepSize(Number stepSize)
getNextValue и getPreviousValue. Генерируется IllegalArgumentException если stepSize равно null. Этот метод вызывает ChangeEvent если stepSize изменилось.
- Параметры:
-
stepSize- размер изменения значения, вычисляемого методамиgetNextValueиgetPreviousValue - См. также:
getStepSize
public Number getStepSize()
getNextValue и getPreviousValue. - Возвращает:
- значение свойства
stepSize - См. также:
getNextValue
public Object getNextValue()
- Определено в:
-
getNextValueв интерфейсеSpinnerModel - Возвращает:
-
value + stepSizeилиnullесли сумма превышаетmaximum - См. также:
getPreviousValue
public Object getPreviousValue()
- Определено в:
-
getPreviousValueв интерфейсеSpinnerModel - Возвращает:
-
value - stepSize, илиnullесли сумма меньшеminimum - См. также:
getNumber
public Number getNumber()
- Возвращает:
- свойство value
- См. также:
getValue
public Object getValue()
- Указано в:
-
getValueв интерфейсеSpinnerModel - Возвращает:
- свойство value
- См. также:
setValue
public void setValue(Object value)
value имеет значение null, или не является Number, выбрасывается IllegalArgumentException. Проверка границ здесь не выполняется; новое значение может нарушить инвариант (minimum <= value <= maximum), накладываемый конструкторами. Также возможно установить значение, которое естественным образом не встречается в последовательности, т.е. значение, которое не является кратным stepSize. Это упрощает обновление модели и позволяет использовать спиннеры, которые не хотят ограничивать значения, введенные пользователем напрямую. Естественно, необходимо убедиться, что инвариант (minimum <= value <= maximum) верен перед вызовом методов next, previous, или setValue. Этот метод срабатывает ChangeEvent, если значение изменилось.
- Указано в:
-
setValueв интерфейсеSpinnerModel - Параметры:
-
value- текущее (неnull) значениеNumberдля этой последовательности - Исключения:
-
IllegalArgumentException- еслиvalueимеет значениеnullили не являетсяNumber - См. также:
© 1993, 2021, 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/17/docs/api/java.desktop/javax/swing/SpinnerNumberModel.html