模块 java.desktop

类 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
允许用户从有序序列中选择数字或对象值的单行输入字段。 Spinners 通常会提供一对小箭头按钮,用于逐步浏览序列的元素。键盘上/下箭头键也可以在元素之间循环。也可以允许用户直接在微调器中键入(合法)值。尽管组合框提供了类似的功能,但有时更喜欢微调器,因为它们不需要可能会掩盖重要数据的下拉列表。

JSpinner 的序列值由其 SpinnerModel 定义。 model 可以指定为构造函数参数并使用 model 属性进行更改。 SpinnerModel 提供了一些常见类型的类:SpinnerListModelSpinnerNumberModelSpinnerDateModel

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
参见: