Класс JSpinner
- Все реализованные интерфейсы:
ImageObserver, MenuContainer, Serializable, Accessible
@JavaBean(defaultProperty="UI", description="A single line input field that lets the user select a number or an object value from an ordered set.") public class JSpinner extends JComponent implements Accessible
Значение последовательности JSpinner определяется его SpinnerModel. model можно указать в качестве аргумента конструктора и изменить с помощью свойства model. Для некоторых распространённых типов предусмотрены классы SpinnerModel: SpinnerListModel, SpinnerNumberModel и SpinnerDateModel.
У JSpinner есть единственный дочерний компонент, отвечающий за отображение и, возможно, изменение текущего элемента или значения модели; он называется editor. Редактор создаётся конструктором JSpinner и может быть изменён с помощью свойства editor. Редактор JSpinner синхронизируется с моделью, отслеживая события ChangeEvent. Если пользователь изменил значение, отображаемое в editor, значение model может отличаться от значения editor. Чтобы убедиться, что model имеет то же значение, что и редактор, используйте метод commitEdit, например:
try {
spinner.commitEdit();
}
catch (ParseException pe) {
// Edited value is invalid, spinner.getValue() will return
// the last valid value, you could revert the spinner to show that:
JComponent editor = spinner.getEditor();
if (editor instanceof DefaultEditor) {
((DefaultEditor)editor).getTextField().setValue(spinner.getValue());
}
// reset the value to some known value:
spinner.setValue(fallbackValue);
// or treat the last valid value as the current, in which
// case you don't need to do anything.
}
return spinner.getValue();
Сведения и примеры использования спиннера см. в разделе Использование спиннеров учебника The Java Tutorial.
Предупреждение: Swing не является потокобезопасной библиотекой. Дополнительные сведения см. в разделе Политика многопоточности Swing.
Предупреждение: Сериализованные объекты этого класса несовместимы с будущими выпусками Swing. Текущая поддержка сериализации предназначена для кратковременного хранения или RMI между приложениями, использующими одну и ту же версию Swing. Начиная с версии 1.4 в пакет java.beans добавлена поддержка долговременного хранения всех JavaBeans. См. XMLEncoder.
- С версии:
- 1.4
- См. также:
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
protected class |
JSpinner.AccessibleJSpinner |
AccessibleJSpinner реализует поддержку специальных возможностей для класса JSpinner. |
static class |
JSpinner.DateEditor |
Редактор для JSpinner, модель которого является SpinnerDateModel. |
static class |
JSpinner.DefaultEditor |
Простой базовый класс для более специализированных редакторов, отображающий доступное только для чтения представление текущего значения модели с помощью JFormattedTextField. |
static class |
JSpinner.ListEditor |
Редактор для JSpinner, модель которого является SpinnerListModel. |
static class |
JSpinner.NumberEditor |
Редактор для JSpinner, модель которого является SpinnerNumberModel. |
Вложенные классы/интерфейсы, объявленные в классе JComponent
JComponent.AccessibleJComponent
Вложенные классы/интерфейсы, объявленные в классе Container
Container.AccessibleAWTContainer
Вложенные классы/интерфейсы, объявленные в классе Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
Краткое описание полей
Поля, объявленные в классе JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
Поля, объявленные в классе Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Поля, объявленные в интерфейсе ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
JSpinner() |
Создаёт спиннер с Integer SpinnerNumberModel, начальным значением 0 и без ограничений на минимальное и максимальное значения. |
JSpinner |
Создаёт спиннер для указанной модели. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
addChangeListener |
Добавляет прослушиватель в список, который получает уведомление при каждом изменении модели. |
void |
commitEdit() |
Сохраняет текущее редактируемое значение в SpinnerModel. |
protected JComponent |
createEditor |
Этот метод вызывается конструкторами для создания JComponent, отображающего текущее значение последовательности. |
protected void |
fireStateChanged() |
Отправляет ChangeEvent, источником которого является этот JSpinner, каждому ChangeListener. |
AccessibleContext |
getAccessibleContext() |
Возвращает AccessibleContext для JSpinner
|
ChangeListener[] |
getChangeListeners() |
Возвращает массив всех ChangeListener, добавленных в этот JSpinner с помощью addChangeListener(). |
JComponent |
getEditor() |
Возвращает компонент, отображающий и, возможно, изменяющий значение модели. |
SpinnerModel |
getModel() |
Возвращает SpinnerModel, задающую последовательность значений этого спиннера. |
Object |
getNextValue() |
Возвращает объект последовательности, следующий за объектом, возвращённым методом getValue(). |
Object |
getPreviousValue() |
Возвращает объект последовательности, предшествующий объекту, возвращённому методом getValue(). |
SpinnerUI |
getUI() |
Возвращает объект оформления (L&F), который отображает этот компонент. |
String |
getUIClassID() |
Возвращает суффикс, используемый для формирования имени класса оформления (L&F), применяемого для отображения этого компонента. |
Object |
getValue() |
Возвращает текущее значение модели; обычно это значение отображается в editor. |
void |
removeChangeListener |
Удаляет ChangeListener из этого спиннера. |
void |
setEditor |
Изменяет JComponent, отображающий текущее значение SpinnerModel. |
void |
setModel |
Изменяет модель, представляющую значение этого спиннера. |
void |
setUI |
Задаёт объект оформления (L&F), который отображает этот компонент. |
void |
setValue |
Изменяет текущее значение модели; обычно это значение отображается в editor. |
void |
updateUI() |
Сбрасывает свойство UI, устанавливая его в значение из текущего оформления. |
Методы, объявленные в классе JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
Методы, объявленные в классе Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
Методы, объявленные в классе Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
Подробное описание конструкторов
JSpinner
public JSpinner(SpinnerModel model)
- Параметры:
-
model— модель для нового спиннера - Исключения:
-
NullPointerException— если модель равнаnull
JSpinner
public JSpinner()
Integer SpinnerNumberModel, начальным значением 0 и без ограничений на минимальное и максимальное значения.Подробное описание методов
getUI
public SpinnerUI getUI()
- Переопределяет:
-
getUIв классеJComponent - Возвращает:
- объект
SpinnerUI, который отображает этот компонент
setUI
public void setUI(SpinnerUI ui)
- Параметры:
-
ui— объект оформления L&F дляSpinnerUI - См. также:
getUIClassID
@BeanProperty(bound=false) public String getUIClassID()
- Переопределяет:
-
getUIClassIDв классеJComponent - Возвращает:
- строку "SpinnerUI"
- См. также:
updateUI
public void updateUI()
- Переопределяет:
-
updateUIв классеJComponent - См. также:
createEditor
protected JComponent createEditor(SpinnerModel model)
JComponent, отображающего текущее значение последовательности. Редактор также может позволять пользователю непосредственно вводить элемент последовательности. Редактор должен отслеживать ChangeEvents в model и синхронизировать отображаемое им значение со значением модели. Подклассы могут переопределить этот метод, чтобы добавить поддержку новых классов SpinnerModel. Кроме того, можно просто заменить редактор, созданный здесь, с помощью метода setEditor. По умолчанию тип модели сопоставляется с редактором следующим образом:
-
SpinnerNumberModel => JSpinner.NumberEditor -
SpinnerDateModel => JSpinner.DateEditor -
SpinnerListModel => JSpinner.ListEditor - все остальные =>
JSpinner.DefaultEditor
- Параметры:
-
model— значение getModel - Возвращает:
- компонент, отображающий текущее значение последовательности
- См. также:
setModel
@BeanProperty(visualUpdate=true, description="Model that represents the value of this spinner.") public void setModel(SpinnerModel model)
"model" PropertyChangeEvent свойству editor (неявно) присваивается значение, возвращаемое методом createEditor, например: setEditor(createEditor(model));
- Параметры:
-
model— новаяSpinnerModel - Исключения:
-
IllegalArgumentException— если model равноnull - См. также:
getModel
public SpinnerModel getModel()
SpinnerModel, задающую последовательность значений этого спиннера.- Возвращает:
- значение свойства model
- См. также:
getValue
public Object getValue()
editor. Если пользователь изменил значение, отображаемое в editor, значение model может отличаться от значения editor; примеры обработки этой ситуации см. в документации Javadoc на уровне класса. Этот метод просто делегирует вызов model. Он эквивалентен следующему:
getModel().getValue()
- Возвращает:
- текущее значение модели
- См. также:
setValue
public void setValue(Object value)
editor. Если реализация SpinnerModel не поддерживает указанное значение, выбрасывается IllegalArgumentException. Этот метод просто делегирует вызов model. Он эквивалентен следующему:
getModel().setValue(value)
- Параметры:
-
value— новое значение спиннера - Исключения:
-
IllegalArgumentException— еслиvalueнедопустимо - См. также:
getNextValue
@BeanProperty(bound=false) public Object getNextValue()
getValue(). Если достигнут конец последовательности, возвращает null. Вызов этого метода не изменяет value. Этот метод просто делегирует вызов model. Он эквивалентен следующему:
getModel().getNextValue()
- Возвращает:
- следующее допустимое значение или
null, если такого значения нет - См. также:
addChangeListener
public void addChangeListener(ChangeListener listener)
ChangeEvents, отправляемых ChangeListeners, будет этот JSpinner. Обратите также внимание, что замена модели не влияет на прослушиватели, добавленные непосредственно в JSpinner. Приложения могут добавлять прослушиватели непосредственно в модель. В этом случае источником события будет SpinnerModel.- Параметры:
-
listener— добавляемыйChangeListener - См. также:
removeChangeListener
public void removeChangeListener(ChangeListener listener)
ChangeListener из этого спиннера.- Параметры:
-
listener— удаляемыйChangeListener - См. также:
getChangeListeners
@BeanProperty(bound=false) public ChangeListener[] getChangeListeners()
ChangeListener, добавленных в этот JSpinner с помощью addChangeListener().- Возвращает:
- все добавленные
ChangeListenerили пустой массив, если прослушиватели не добавлялись - С версии:
- 1.4
fireStateChanged
protected void fireStateChanged()
ChangeEvent, источником которого является этот JSpinner, каждому ChangeListener. После добавления ChangeListener в спиннер этот метод вызывается каждый раз при получении ChangeEvent от модели.- См. также:
getPreviousValue
@BeanProperty(bound=false) public Object getPreviousValue()
getValue(). Если достигнут конец последовательности, возвращает null. Вызов этого метода не изменяет value. Этот метод просто делегирует вызов model. Он эквивалентен следующему:
getModel().getPreviousValue()
- Возвращает:
- предыдущее допустимое значение или
null, если такого значения нет - См. также:
setEditor
@BeanProperty(visualUpdate=true, description="JComponent that displays the current value of the model") public void setEditor(JComponent editor)
JComponent, отображающий текущее значение SpinnerModel. Этот метод отвечает за отключение старого редактора от модели и подключение нового. Это может означать удаление ChangeListener старого редактора из модели или самого спиннера и добавление такого обработчика для нового редактора.- Параметры:
-
editor— новый редактор - Исключения:
-
IllegalArgumentException— если editor равноnull - См. также:
getEditor
public JComponent getEditor()
- Возвращает:
- компонент, отображающий и, возможно, изменяющий значение модели
- См. также:
commitEdit
public void commitEdit() throws ParseException
SpinnerModel. Если редактор является экземпляром DefaultEditor, вызов перенаправляется редактору; в противном случае метод ничего не делает.
- Исключения:
-
ParseException— если текущее редактируемое значение не удалось сохранить.
getAccessibleContext
@BeanProperty(bound=false) public AccessibleContext getAccessibleContext()
AccessibleContext для JSpinner
- Определено в:
-
getAccessibleContextв интерфейсеAccessible - Переопределяет:
-
getAccessibleContextв классеComponent - Возвращает:
AccessibleContextдляJSpinner- С версии:
- 1.5
© 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/JSpinner.html