Module java.desktop
Package javax.swing

Class 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类: SpinnerListModelSpinnerNumberModelSpinnerDateModel

JSpinner有一个负责显示和可能更改模型当前元素或的单个子组件,称为editor。编辑器由JSpinner的构造函数创建,并可以使用editor属性更改。JSpinner的编辑器通过监听ChangeEvent与模型保持同步。如果用户更改了editor显示的值,则model的值可能与editor的值不同。要确保model具有与编辑器相同的值,请使用commitEdit方法,例如:

   try {
       spinner.commitEdit();
   }
   catch (ParseException pe) {
       // 编辑的值无效,spinner.getValue()将返回
       // 上一个有效值,您可以恢复微调器以显示该值:
       JComponent editor = spinner.getEditor();
       if (editor instanceof DefaultEditor) {
           ((DefaultEditor)editor).getTextField().setValue(spinner.getValue());
       }
       // 重置值为某个已知值:
       spinner.setValue(fallbackValue);
       // 或将上一个有效值视为当前值,这种情况下您不需要执行任何操作。
   }
   return spinner.getValue();
 

有关使用微调器的信息和示例,请参阅如何使用微调器,这是The Java Tutorial中的一个部分。

警告: Swing不是线程安全的。有关更多信息,请参阅Swing的线程策略

警告: 该类的序列化对象将不兼容未来的Swing版本。当前的序列化支持适用于短期存储或在运行相同Swing版本的应用程序之间的RMI。从1.4开始,已将所有JavaBeans的长期存储支持添加到java.beans包中。请参阅XMLEncoder

自版本:
1.4
参见: