- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.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教程”中的 How to Use Spinners部分。
警告: Swing不是线程安全的。 有关更多信息,请参阅Swing's Threading Policy 。
警告:此类的序列化对象与以后的Swing版本不兼容。 当前的序列化支持适用于运行相同版本Swing的应用程序之间的短期存储或RMI。 从1.4开始,
java.beans
软件包中添加了对所有JavaBeansjava.beans
长期存储的支持。 请参阅XMLEncoder
。- 从以下版本开始:
- 1.4
- 另请参见:
-
SpinnerModel
,AbstractSpinnerModel
,SpinnerListModel
,SpinnerNumberModel
,SpinnerDateModel
,JFormattedTextField
, Serialized Form
-
-
嵌套类汇总
嵌套类 变量和类型 类 描述 protected class
JSpinner.AccessibleJSpinner
AccessibleJSpinner
实现了JSpinner
类的可访问性支持。static class
JSpinner.DateEditor
JSpinner
的编辑,其型号为SpinnerDateModel
。static class
JSpinner.DefaultEditor
一个简单的基类,用于更专业的编辑器,使用JFormattedTextField
显示模型当前值的JFormattedTextField
。static class
JSpinner.ListEditor
JSpinner
的编辑,其型号为SpinnerListModel
。static class
JSpinner.NumberEditor
JSpinner
的编辑,其型号为SpinnerNumberModel
。-
嵌套类/接口声明在类 javax.swing.JComponent
JComponent.AccessibleJComponent
-
嵌套类/接口声明在类 java.awt.Container
Container.AccessibleAWTContainer
-
-
字段汇总
-
声明的属性在类 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
-
Fields declared in interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
-
-
构造方法摘要
构造方法 构造器 描述 JSpinner()
使用Integer SpinnerNumberModel
构造一个初始值为0且没有最小或最大限制的微调器。JSpinner(SpinnerModel model)
为给定模型构造一个微调器。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 void
addChangeListener(ChangeListener listener)
向每次发生模型更改时通知的列表添加侦听器。void
commitEdit()
将当前编辑的值提交到SpinnerModel
。protected JComponent
createEditor(SpinnerModel model)
构造函数调用此方法以创建显示序列当前值的JComponent
。protected void
fireStateChanged()
发送ChangeEvent
,其源为此JSpinner
,每个ChangeListener
。AccessibleContext
getAccessibleContext()
获取AccessibleContext
的JSpinner
ChangeListener[]
getChangeListeners()
返回使用addChangeListener()添加到此JSpinner的所有ChangeListener
的数组。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 listener)
从此微调器中删除ChangeListener
。void
setEditor(JComponent editor)
更改显示JComponent
的当前值的SpinnerModel
。void
setModel(SpinnerModel model)
更改表示此微调器值的模型。void
setUI(SpinnerUI ui)
设置呈现此组件的外观(L&F)对象。void
setValue(Object value)
更改模型的当前值,通常此值由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, 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, hide, 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()
返回呈现此组件的外观(L&F)对象。- 重写:
-
getUI
类JComponent
- 结果
-
呈现此组件的
SpinnerUI
对象
-
setUI
public void setUI(SpinnerUI ui)
设置呈现此组件的外观(L&F)对象。- 参数
-
ui
-SpinnerUI
L&F对象 - 另请参见:
-
UIDefaults.getUI(javax.swing.JComponent)
-
getUIClassID
@BeanProperty(bound=false) public String getUIClassID()
返回用于构造用于呈现此组件的外观(L&F)类名称的后缀。- 重写:
-
getUIClassID
在类JComponent
- 结果
- 字符串“SpinnerUI”
- 另请参见:
-
JComponent.getUIClassID()
,UIDefaults.getUI(javax.swing.JComponent)
-
updateUI
public void updateUI()
使用当前外观中的值重置UI属性。
-
createEditor
protected JComponent createEditor(SpinnerModel model)
构造函数调用此方法以创建显示序列当前值的JComponent
。 编辑器还可以允许用户直接输入序列的元素。 编辑器必须在ChangeEvents
上model
并保持其显示的值与模型的值同步。子类可以重写此方法以添加对新
SpinnerModel
类的支持。 或者,可以使用setEditor
方法替换此处创建的编辑器。 从模型类型到编辑器的默认映射是:-
SpinnerNumberModel => JSpinner.NumberEditor
-
SpinnerDateModel => JSpinner.DateEditor
-
SpinnerListModel => JSpinner.ListEditor
- 所有其他 =>
JSpinner.DefaultEditor
- 参数
-
model
- getModel的值 - 结果
- 显示序列当前值的组件
- 另请参见:
-
getModel()
,setEditor(javax.swing.JComponent)
-
-
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
- 如果型号是null
- 另请参见:
-
getModel()
,getEditor()
,setEditor(javax.swing.JComponent)
-
getModel
public SpinnerModel getModel()
返回定义此微调器值序列的SpinnerModel
。- 结果
- model属性的值
- 另请参见:
-
setModel(javax.swing.SpinnerModel)
-
getValue
public Object getValue()
返回模型的当前值,通常此值由editor
显示。 如果用户已经改变由显示的值editor
有可能为model
的价值,从该的不同editor
,请参阅类级别的javadoc对于如何处理这方面的例子。此方法仅委托给
model
。 它相当于:getModel().getValue()
- 结果
- 模型的当前值
- 另请参见:
-
setValue(java.lang.Object)
,SpinnerModel.getValue()
-
setValue
public void setValue(Object value)
更改模型的当前值,通常此值由editor
显示。 如果SpinnerModel
实现不支持指定的值,则抛出IllegalArgumentException
。此方法只是委托给
model
。 它相当于:getModel().setValue(value)
- 参数
-
value
- 微调器的新值 - 异常
-
IllegalArgumentException
- 如果不允许value
- 另请参见:
-
getValue()
,SpinnerModel.setValue(java.lang.Object)
-
getNextValue
@BeanProperty(bound=false) public Object getNextValue()
返回getValue()
返回的对象之后的序列中的对象。 如果已到达序列的末尾,则返回null
。 调用此方法不会影响value
。此方法仅委托给
model
。 它相当于:getModel().getNextValue()
- 结果
-
如果不存在,
null
下一个合法值或null
- 另请参见:
-
getValue()
,getPreviousValue()
,SpinnerModel.getNextValue()
-
addChangeListener
public void addChangeListener(ChangeListener listener)
向每次发生模型更改时通知的列表添加侦听器。ChangeEvents
发送到ChangeListeners
的来源将是JSpinner
。 另请注意,替换模型不会影响直接添加到JSpinner的侦听器。 应用程序可以直接向模型添加侦听器。 在这种情况下,事件的来源将是SpinnerModel
。- 参数
-
listener
- 要添加的ChangeListener
- 另请参见:
-
removeChangeListener(javax.swing.event.ChangeListener)
,getModel()
-
removeChangeListener
public void removeChangeListener(ChangeListener listener)
从此微调器中删除ChangeListener
。- 参数
-
listener
- 要删除的ChangeListener
- 另请参见:
-
fireStateChanged()
,addChangeListener(javax.swing.event.ChangeListener)
-
getChangeListeners
@BeanProperty(bound=false) public ChangeListener[] getChangeListeners()
返回使用addChangeListener()添加到此JSpinner的所有ChangeListener
的数组。- 结果
-
如果没有添加任何侦听器,则添加所有
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
如果不存在) - 另请参见:
-
getValue()
,getNextValue()
,SpinnerModel.getPreviousValue()
-
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()
,createEditor(javax.swing.SpinnerModel)
,getModel()
-
getEditor
public JComponent getEditor()
返回显示的组件并可能更改模型的值。- 结果
- 显示并可能更改模型值的组件
- 另请参见:
-
setEditor(javax.swing.JComponent)
,createEditor(javax.swing.SpinnerModel)
-
commitEdit
public void commitEdit() throws ParseException
将当前编辑的值提交到SpinnerModel
。如果编辑器是
DefaultEditor
的实例,则调用如果转发给编辑器,否则不执行任何操作。- 异常
-
ParseException
- 如果无法提交当前编辑的值。
-
getAccessibleContext
@BeanProperty(bound=false) public AccessibleContext getAccessibleContext()
获取AccessibleContext
的JSpinner
- Specified by:
-
getAccessibleContext
在接口Accessible
- 重写:
-
getAccessibleContext
在类Component
- 结果
-
AccessibleContext
为JSpinner
- 从以下版本开始:
- 1.5
-
-