Класс SpinnerNumberModel
- java.lang.Object
-
- javax.swing.AbstractSpinnerModel
-
- javax.swing.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.
Для создания модели для диапазона целых чисел от нуля до ста, с начальным значением 50, можно написать:
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
- См. также:
-
JSpinner,SpinnerModel,AbstractSpinnerModel,SpinnerListModel,SpinnerDateModel, Сериализованная форма
Поля
Поля, объявленные в классе javax.swing.AbstractSpinnerModel
listenerList Конструкторы
| Конструктор | Описание |
|---|---|
SpinnerNumberModel() | Создаёт |
SpinnerNumberModel(double value,
double minimum,
double maximum,
double stepSize) | Создаёт |
SpinnerNumberModel(int value,
int minimum,
int maximum,
int stepSize) | Создаёт |
SpinnerNumberModel(Number value,
Comparable<?> minimum,
Comparable<?> maximum,
Number stepSize) | Создаёт |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
Comparable<?> | getMaximum() | Возвращает последнее число в последовательности. |
Comparable<?> | getMinimum() | Возвращает первое число в этой последовательности. |
Object | getNextValue() | Возвращает следующее число в последовательности. |
Number | getNumber() | Возвращает значение текущего элемента последовательности. |
Object | getPreviousValue() | Возвращает предыдущее число в последовательности. |
Number | getStepSize() | Возвращает размер изменения значения, вычисляемого методами |
Object | getValue() | Возвращает значение текущего элемента последовательности. |
void | setMaximum(Comparable<?> maximum) | Изменяет верхнюю границу для чисел в этой последовательности. |
void | setMinimum(Comparable<?> minimum) | Изменяет нижнюю границу для чисел в этой последовательности. |
void | setStepSize(Number stepSize) | Изменяет размер изменения значения, вычисляемого методами |
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 Конструкторы
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 или valuenullили если следующее выражение ложно: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(),setMaximum(java.lang.Comparable<?>),SpinnerModel.addChangeListener(javax.swing.event.ChangeListener)
getMinimum
public Comparable<?> getMinimum()
Возвращает первое число в этой последовательности.
- Возвращает:
- значение свойства
minimum - См. также:
setMinimum(java.lang.Comparable<?>)
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(),setMinimum(java.lang.Comparable<?>),SpinnerModel.addChangeListener(javax.swing.event.ChangeListener)
getMaximum
public Comparable<?> getMaximum()
Возвращает последнее число в последовательности.
- Возвращает:
- значение свойства
maximum - См. также:
setMaximum(java.lang.Comparable<?>)
setStepSize
public void setStepSize(Number stepSize)
Изменяет размер изменения значения, вычисляемого методами getNextValue и getPreviousValue. Исключение IllegalArgumentException выбрасывается, если stepSize равно null.
Этот метод генерирует событие ChangeEvent, если stepSize изменился.
- Параметры:
-
stepSize- размер изменения значения, вычисляемого методамиgetNextValueиgetPreviousValue - См. также:
-
getNextValue(),getPreviousValue(),getStepSize(),SpinnerModel.addChangeListener(javax.swing.event.ChangeListener)
getStepSize
public Number getStepSize()
Возвращает размер изменения значения, вычисляемого методами getNextValue и getPreviousValue.
- Возвращает:
- значение свойства
stepSize - См. также:
setStepSize(java.lang.Number)
getNextValue
public Object getNextValue()
Возвращает следующее число в последовательности.
- Определено в:
-
getNextValueв интерфейсеSpinnerModel - Возвращает:
-
value + stepSizeилиnull, если сумма превышаетmaximum. - См. также:
-
SpinnerModel.getNextValue(),getPreviousValue(),setStepSize(java.lang.Number)
getPreviousValue
public Object getPreviousValue()
Возвращает предыдущее число в последовательности.
- Определено в:
-
getPreviousValueв интерфейсеSpinnerModel - Возвращает:
-
value - stepSize, илиnull, если сумма меньшеminimum. - См. также:
-
SpinnerModel.getPreviousValue(),getNextValue(),setStepSize(java.lang.Number)
getNumber
public Number getNumber()
Возвращает значение текущего элемента последовательности.
- Возвращает:
- свойство value
- См. также:
setValue(java.lang.Object)
getValue
public Object getValue()
Возвращает значение текущего элемента последовательности.
- Определено в:
-
getValueв интерфейсеSpinnerModel - Возвращает:
- свойство value
- См. также:
-
setValue(java.lang.Object),getNumber()
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 - См. также:
-
getNumber(),getValue(),SpinnerModel.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/SpinnerNumberModel.html