- 所有已实现的接口:
ImageObserver,MenuContainer,Serializable,Accessible
JSpinner 的序列值由其 SpinnerModel 定义。 model 可以指定为构造函数参数并使用 model 属性进行更改。 SpinnerModel 提供了一些常见类型的类:SpinnerListModel、SpinnerNumberModel 和 SpinnerDateModel。
JSpinner 有一个子组件负责显示和可能更改当前元素或value模型的名称,称为 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. 中的一个部分
Warning: Swing 不是线程安全的。有关详细信息,请参阅 Swing 的线程策略。
Warning: 此类的序列化对象将与未来的 Swing 版本不兼容。当前的序列化支持适用于运行相同版本 Swing 的应用程序之间的短期存储或 RMI。从 1.4 开始,对所有 JavaBeans 的长期存储的支持已添加到 java.beans 包中。请参阅 XMLEncoder 。
- 自从:
- 1.4
- 参见:
-
内部类总结
内部类修饰符和类型类描述protected classAccessibleJSpinner为JSpinner类实现可访问性支持。static class模型为SpinnerDateModel的JSpinner的编辑器。static class一个简单的基类,用于更专业的编辑器,它使用JFormattedTextField显示模型当前值的只读视图。static class模型为SpinnerListModel的JSpinner的编辑器。static class模型为SpinnerNumberModel的JSpinner的编辑器。在类 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在接口 java.awt.image.ImageObserver 中声明的字段
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH -
构造方法总结
构造方法构造方法描述JSpinner()使用初始值为 0 且没有最小或最大限制的Integer SpinnerNumberModel构造一个微调器。JSpinner(SpinnerModel model) 为给定模型构造一个微调器。 -
方法总结
修饰符和类型方法描述voidaddChangeListener(ChangeListener listener) 将监听添加到列表中,每次发生模型更改时都会通知该列表。void将当前编辑的值提交给SpinnerModel。protected JComponentcreateEditor(SpinnerModel model) 构造函数调用此方法来创建显示序列当前值的JComponent。protected void向每个ChangeListener发送一个ChangeEvent,其来源是这个JSpinner。为JSpinner获取AccessibleContext返回使用 addChangeListener() 添加到此 JSpinner 的所有ChangeListener的数组。返回显示并可能更改模型值的组件。getModel()返回定义此旋转器值序列的SpinnerModel。返回getValue()返回的对象之后的序列中的对象。返回序列中getValue()返回的对象之前的对象。getUI()返回呈现此组件的外观 (L&F) 对象。返回用于构造用于呈现此组件的外观 (L&F) 类名称的后缀。getValue()返回模型的当前值,通常此值由editor显示。voidremoveChangeListener(ChangeListener listener) 从此微调器中删除ChangeListener。voidsetEditor(JComponent editor) 更改显示SpinnerModel当前值的JComponent。voidsetModel(SpinnerModel model) 更改表示此微调器值的模型。void设置呈现此组件的外观 (L&F) 对象。void更改模型的当前值,通常此值由editor显示。voidupdateUI()使用当前外观的值重置 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
为给定模型构造一个微调器。微调器有一组上一个/下一个按钮,以及一个适合模型的编辑器。- 参数:
model- 新微调器的模型- 抛出:
NullPointerException- 如果模型是null
-
JSpinner
public JSpinner()使用初始值为 0 且没有最小或最大限制的Integer SpinnerNumberModel构造一个微调器。
-
-
方法详情
-
getUI
返回呈现此组件的外观 (L&F) 对象。- 重写:
getUI在类JComponent中- 返回:
-
呈现此组件的
SpinnerUI对象
-
setUI
设置呈现此组件的外观 (L&F) 对象。- 参数:
ui-SpinnerUIL&F 对象- 参见:
-
getUIClassID
返回用于构造用于呈现此组件的外观 (L&F) 类名称的后缀。- 重写:
getUIClassID在类JComponent中- 返回:
- 字符串“SpinnerUI”
- 参见:
-
updateUI
public void updateUI()使用当前外观的值重置 UI 属性。- 重写:
updateUI在类JComponent中- 参见:
-
createEditor
构造函数调用此方法来创建显示序列当前值的JComponent。编辑器还可以允许用户直接输入序列的元素。编辑器必须在model上监听ChangeEvents并使其显示的值与模型的值保持同步。子类可以覆盖此方法以添加对新的
SpinnerModel类的支持。或者,可以只用setEditor方法替换此处创建的编辑器。从模型类型到编辑器的默认映射是:SpinnerNumberModel => JSpinner.NumberEditorSpinnerDateModel => JSpinner.DateEditorSpinnerListModel => 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
返回定义此旋转器值序列的SpinnerModel。- 返回:
- 模型属性的值
- 参见:
-
getValue
返回模型的当前值,通常此值由editor显示。如果用户更改了editor显示的值,则model的值可能与editor的值不同,请参阅类级别的 javadoc 以获取有关如何处理此问题的示例。此方法只是委托给
model。它相当于:getModel().getValue()
- 返回:
- 模型的当前值
- 参见:
-
setValue
更改模型的当前值,通常此值由editor显示。如果SpinnerModel实现不支持指定值,则抛出IllegalArgumentException。此方法只是委托给
model。它相当于:getModel().setValue(value)
- 参数:
value- 微调器的新值- 抛出:
IllegalArgumentException- 如果不允许使用value- 参见:
-
getNextValue
返回getValue()返回的对象之后的序列中的对象。如果已到达序列末尾,则返回null。调用此方法不会影响value。此方法只是委托给
model。它相当于:getModel().getNextValue()
- 返回:
-
下一个合法值或
null(如果不存在) - 参见:
-
addChangeListener
将监听器添加到列表中,每次发生模型更改时都会通知该列表。交付给ChangeListeners的ChangeEvents的来源将是这个JSpinner。另请注意,替换模型不会影响直接添加到 JSpinner 的监听器。应用程序可以直接向模型添加监听器。在那种情况下,事件的来源将是SpinnerModel。- 参数:
listener- 要添加的ChangeListener- 参见:
-
removeChangeListener
从此微调器中删除ChangeListener。- 参数:
listener- 要删除的ChangeListener- 参见:
-
getChangeListeners
返回使用 addChangeListener() 添加到此 JSpinner 的所有ChangeListener的数组。- 返回:
-
添加所有
ChangeListener或如果未添加任何监听器,则为空数组 - 自从:
- 1.4
-
fireStateChanged
protected void fireStateChanged()向每个ChangeListener发送一个ChangeEvent,其来源是这个JSpinner。将ChangeListener添加到微调器后,每次从模型接收到ChangeEvent时都会调用此方法。- 参见:
-
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当前值的JComponent。这种方法的责任是disconnect模型中的旧编辑器并连接新编辑器。这可能意味着从模型或微调器本身中删除旧编辑器ChangeListener并为新编辑器添加一个。- 参数:
editor- 新编辑- 抛出:
IllegalArgumentException- 如果编辑器是null- 参见:
-
getEditor
返回显示并可能更改模型值的组件。- 返回:
- 显示并可能更改模型值的组件
- 参见:
-
commitEdit
将当前编辑的值提交给SpinnerModel。如果编辑器是
DefaultEditor的一个实例,调用会被转发给编辑器,否则什么都不做。- 抛出:
ParseException- 如果无法提交当前编辑的值。
-
getAccessibleContext
为JSpinner获取AccessibleContext- 指定者:
getAccessibleContext在接口Accessible中- 重写:
getAccessibleContext在类Component中- 返回:
AccessibleContext为JSpinner- 自从:
- 1.5
-