Класс 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();
Для получения информации и примеров использования спиннера, см. Как использовать спиннеры, раздел учебника Java.
Предупреждение: Swing не является потокобезопасным. Для получения дополнительной информации см. Политику потоков Swing.
Предупреждение: Сериализованные объекты этого класса не будут совместимы с будущими выпусками Swing. Текущая поддержка сериализации подходит для краткосрочного хранения или RMI между приложениями, работающими с одной версией Swing. С версии 1.4 поддержка долгосрочного хранения всех JavaBeans добавлена в пакет java.beans. Обратитесь, пожалуйста, к 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. |
Вложенные классы/интерфейсы, объявленные в классе javax.swing.JComponent
JComponent.AccessibleJComponent
Вложенные классы/интерфейсы, объявленные в классе java.awt.Container
Container.AccessibleAWTContainer
Вложенные классы/интерфейсы, объявленные в классе java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
Краткое описание полей
Поля, объявленные в классе javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
Поля, объявленные в классе java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Поля, объявленные в интерфейсе java.awt.image.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 со значением из текущей темы внешнего вида. |
Методы, объявленные в классе javax.swing.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
Методы, объявленные в классе java.awt.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
Методы, объявленные в классе java.awt.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- модель для нового элемента управления spinner - Исключения:
-
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 было вызвано. Свойство редактора устанавливается в значение, возвращаемое createEditor, как в: setEditor(createEditor(model));
- Параметры:
-
model- новаяSpinnerModel - Исключения:
-
IllegalArgumentException- если модельnull - См. также:
getModel
public SpinnerModel getModel()
SpinnerModel, который определяет последовательность значений этого элемента управления spinner.- Возвращает:
- значение свойства модели
- См. также:
getValue
public Object getValue()
editor. Если пользователь изменил значение, отображаемое editor, возможно, что значение model отличается от значения editor, обратитесь к описанию класса для примеров того, как справиться с этим. Этот метод просто делегирует model. Он эквивалентен:
getModel().getValue()
- Возвращает:
- текущее значение модели
- См. также:
setValue
public void setValue(Object value)
editor. Если реализация SpinnerModel не поддерживает указанное значение, то генерируется исключение IllegalArgumentException. Этот метод просто делегирует model. Он эквивалентен:
getModel().setValue(value)
- Параметры:
-
value- новое значение для элемента управления spinner - Исключения:
-
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 из этого элемента управления spinner.- Параметры:
-
listener-ChangeListenerдля удаления - См. также:
getChangeListeners
@BeanProperty(bound=false) public ChangeListener[] getChangeListeners()
ChangeListener, добавленных в этот JSpinner с помощью addChangeListener().- Возвращает:
- все добавленные
ChangeListenerили пустой массив, если прослушиватели не были добавлены - С версии:
- 1.4
fireStateChanged
protected void fireStateChanged()
ChangeEvent, источником которого является этот JSpinner, каждому ChangeListener. Когда ChangeListener был добавлен к элементу управления spinner, этот метод вызывается каждый раз, когда от модели принимается 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- если редактор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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/javax/swing/JSpinner.html