Класс 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
Последовательность значений спиннера определяется его моделью. Модель может быть задана в качестве аргумента конструктора и изменена свойством модели. Предоставляются классы-модели для некоторых распространённых типов: SpinnerListModel, SpinnerNumberModel, и SpinnerDateModel.
Спиннер имеет один дочерний компонент, ответственный за отображение и потенциальное изменение текущего элемента или значения модели, который называется редактором. Редактор создаётся конструктором спиннера и может быть изменён свойством редактора. Редактор спиннера синхронизируется с моделью, прослушивая изменения модели. Если пользователь изменил значение, отображаемое редактором, значение спиннера может отличаться от значения модели. Чтобы убедиться, что значение спиннера совпадает со значением редактора, используйте метод 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.
- Since:
- 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- модель для нового спиннера - Исключения:
-
NullPointerException- если модель являетсяnull
JSpinner
public JSpinner()
Подробное описание методов
getUI
public SpinnerUI getUI()
- Переопределяет:
-
getUIв классеJComponent - Возвращает:
- объект внешнего вида (L&F), который отображает этот компонент
setUI
public void setUI(SpinnerUI ui)
- Параметры:
-
ui- объект внешнего вида (L&F) - См. также:
getUIClassID
@BeanProperty(bound=false) public String getUIClassID()
- Переопределяет:
-
getUIClassIDв классеJComponent - Возвращает:
- строку "SpinnerUI"
- См. также:
updateUI
public void updateUI()
- Переопределяет:
-
updateUIв классеJComponent - См. также:
createEditor
protected JComponent createEditor(SpinnerModel model)
Подклассы могут переопределить этот метод, чтобы добавить поддержку новых типов редакторов. Кроме того, можно просто заменить созданный здесь редактор с помощью метода 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- новая модель - Исключения:
-
IllegalArgumentException- если модель являетсяnull - См. также:
getModel
public SpinnerModel getModel()
- Возвращает:
- значение свойства модели
- См. также:
getValue
public Object getValue()
Этот метод просто делегирует model. Он эквивалентен:
getModel().getValue()
- Возвращает:
- текущее значение модели
- См. также:
setValue
public void setValue(Object value)
Этот метод просто делегирует 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)
ChangeListeners, является этот спиннер. Обратите также внимание, что замена модели не повлияет на слушателей, добавленных непосредственно в JSpinner. Приложения могут добавлять слушателей непосредственно к модели. В этом случае источником события будет модель.- Параметры:
-
listener- слушатель - См. также:
removeChangeListener
public void removeChangeListener(ChangeListener listener)
- Параметры:
-
listener- слушатель для удаления - См. также:
getChangeListeners
@BeanProperty(bound=false) public ChangeListener[] getChangeListeners()
- Возвращает:
- все добавленные слушатели или пустой массив, если слушатели не были добавлены
- С:
- 1.4
fireStateChanged
protected void fireStateChanged()
- См. также:
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)
SpinnerModel. Метод обязан отсоединить старый редактор от модели и подключить новый. Это может означать удаление старого редактора из модели или спиннера и добавление нового для нового редактора.- Параметры:
-
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, 2023, 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/21/docs/api/java.desktop/javax/swing/JSpinner.html