public class JSpinner extends JComponent implements Accessible
JSpinner的序列值由其SpinnerModel定义。 该model可以被指定为构造函数的参数,并与改变model财产。 SpinnerModel提供了类的一些常见类型: SpinnerListModel , SpinnerNumberModel和SpinnerDateModel 。
A JSpinner具有单个子组件,负责显示和潜在地更改模型的当前元素或值 ,这称为editor 。 编辑器由JSpinner的构造函数创建,可以使用editor属性更改。 JSpinner的编辑器通过聆听ChangeEvent s与模特保持同步。 如果用户已经改变由所述显示的值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();
有关使用旋转器的信息和示例,请参阅How to Use Spinners “Java教程 ”中的一节。
警告: Swing不是线程安全的。 有关更多信息,请参阅Swing's Threading Policy 。
警告:此类的序列化对象与将来的Swing版本不兼容。 当前的序列化支持适用于运行相同版本的Swing的应用程序之间的短期存储或RMI。 从1.4开始,支持所有JavaBeans的长期存储已经添加到java.beans包中。 请参阅XMLEncoder 。
SpinnerModel , AbstractSpinnerModel , SpinnerListModel , SpinnerNumberModel , SpinnerDateModel , JFormattedTextField
| Modifier and Type | Class and Description |
|---|---|
protected class |
JSpinner.AccessibleJSpinner
AccessibleJSpinner实现
JSpinner类的辅助功能支持。
|
static class |
JSpinner.DateEditor
一个
JSpinner的编辑器,其型号是
SpinnerDateModel 。
|
static class |
JSpinner.DefaultEditor
更专业的编辑器的简单基类,用JFormattedTextField显示模型当前值的
JFormattedTextField 。
|
static class |
JSpinner.ListEditor
一个
JSpinner为
JSpinner的模特是
SpinnerListModel 。
|
static class |
JSpinner.NumberEditor
一个
JSpinner的编辑器,其型号是
SpinnerNumberModel 。
|
JComponent.AccessibleJComponentContainer.AccessibleAWTContainerComponent.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategylistenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOWaccessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH| Constructor and Description |
|---|
JSpinner()
构造一个旋涂器
Integer SpinnerNumberModel使用初始值0并且没有最低或最高限度。
|
JSpinner(SpinnerModel model)
构造给定模型的旋转器。
|
| Modifier and Type | Method and Description |
|---|---|
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属性。
|
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, 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, updateadd, 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, validateTreeaction, 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, 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, getPeer, 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, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCyclepublic JSpinner(SpinnerModel model)
NullPointerException - 如果型号是
null
public JSpinner()
Integer SpinnerNumberModel使用初始值0并且没有最低或最高限度。
public SpinnerUI getUI()
SpinnerUI对象
public void setUI(SpinnerUI ui)
ui -
SpinnerUI L&F对象
UIDefaults.getUI(javax.swing.JComponent)
public String getUIClassID()
getUIClassID在
JComponent
JComponent.getUIClassID() ,
UIDefaults.getUI(javax.swing.JComponent)
public void updateUI()
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)
public void setModel(SpinnerModel model)
"model" PropertyChangeEvent已被触发。
编辑器属性设置为createEditor返回的值,如:
setEditor(createEditor(model));
model - 全新
SpinnerModel
IllegalArgumentException - 如果型号是
null
getModel() ,
getEditor() ,
setEditor(javax.swing.JComponent)
public SpinnerModel getModel()
SpinnerModel 。
setModel(javax.swing.SpinnerModel)
public Object getValue()
editor 。
如果用户已经改变由显示的值editor ,可以为model的价值,从该的不同editor ,请参阅类级别的javadoc对于如何处理这方面的例子。
这个方法只是委托给model 。 相当于:
getModel().getValue()
public void setValue(Object value)
editor 。
如果SpinnerModel实现不支持指定的值,则抛出IllegalArgumentException 。
这个方法只是委托给model 。 相当于:
getModel().setValue(value)
IllegalArgumentException - 如果
value
getValue() ,
SpinnerModel.setValue(java.lang.Object)
public Object getNextValue()
getValue()返回的对象后面的序列中的对象。
如果序列的结尾已经到达,那么返回null 。
调用此方法不影响value 。
这个方法只是委托给model 。 相当于:
getModel().getNextValue()
null如果不存在
getValue() ,
getPreviousValue() ,
SpinnerModel.getNextValue()
public void addChangeListener(ChangeListener listener)
ChangeEvents的来源发送到ChangeListeners将是这个JSpinner 。
还要注意,替换模型不会影响直接添加到JSpinner的监听器。
应用程序可以直接向模型添加监听器。
在这种情况下,事件的来源将是SpinnerModel 。
listener - 要添加的
ChangeListener
removeChangeListener(javax.swing.event.ChangeListener) ,
getModel()
public void removeChangeListener(ChangeListener listener)
ChangeListener 。
listener - 要删除的
ChangeListener
fireStateChanged() ,
addChangeListener(javax.swing.event.ChangeListener)
public ChangeListener[] getChangeListeners()
ChangeListener的数组。
ChangeListener如果没有添加任何监听器,则为空数组
protected void fireStateChanged()
ChangeEvent ,其来源是这JSpinner ,每个ChangeListener 。
当一个ChangeListener已添加到微调器时,每次从模型接收到一个ChangeEvent时,将调用此方法方法。
public Object getPreviousValue()
getValue()返回的对象之前的序列中的对象。
如果序列的结尾已经到达,则返回null 。
调用此方法不影响value 。
这个方法只是委托给model 。 相当于:
getModel().getPreviousValue()
null如果不存在
getValue() ,
getNextValue() ,
SpinnerModel.getPreviousValue()
public void setEditor(JComponent editor)
JComponent的当前值的SpinnerModel 。
这种方法有责任将旧的编辑器与模型断开连接,并连接新的编辑器。
这可能意味着从模型或微调器本身中删除旧编辑器ChangeListener ,并为新编辑器添加一个。
editor - 新编辑
IllegalArgumentException - 如果编辑器是
null
getEditor() ,
createEditor(javax.swing.SpinnerModel) ,
getModel()
public JComponent getEditor()
setEditor(javax.swing.JComponent) ,
createEditor(javax.swing.SpinnerModel)
public void commitEdit()
throws ParseException
SpinnerModel 。
如果编辑器是一个DefaultEditor一个实例,调用如果转发给编辑器,否则这样做什么都不做。
ParseException - 如果当前编辑的值无法提交。
public AccessibleContext getAccessibleContext()
AccessibleContext为
JSpinner
getAccessibleContext在接口
Accessible
getAccessibleContext在
Component
AccessibleContext为
JSpinner
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.