Module  javafx.controls
软件包  javafx.scene.control

Class Spinner<T>

  • 参数类型
    T - Spinner中可以重复遍历的所有值的类型。 通用类型包括整数和字符串。
    All Implemented Interfaces:
    StyleableEventTargetSkinnable


    public class Spinner<T>
    extends Control
    单行文本字段,允许用户从有序序列中选择一个数字或一个对象值。 旋转器通常提供一对微小的箭头按钮,用于逐步穿过序列的元素。 键盘上/下箭头键也循环遍历元素。 也可以允许用户在旋转器中直接输入(合法)值。 尽管组合框提供了类似的功能,但是有时候优选旋转器,因为它们不需要可以掩盖重要数据的下拉列表,也因为它们允许诸如wrapping和更简单的“无限”数据模型( SpinnerValueFactory ,而不是像许多其他JavaFX UI控件一样使用ObservableList数据模型。

    微调器的序列值由其SpinnerValueFactory定义。 值工厂可以指定为构造函数参数,并用value factory property进行更改。 JavaFX提供了一些常见类型的SpinnerValueFactory类,其中包括:

    Spinner有一个TextField子组件,负责显示和潜在地更改Spinner的当前value ,这被称为editor 默认情况下,Spinner不可编辑,但如果editable property设置为true,则可以接受输入。 通过监听价值工厂的value property的更改,Spinner编辑器与值工厂保持同步。 如果用户已更改编辑器中显示的值,则Spinner value可能与编辑器不同。 为了确保模型与编辑器具有相同的值,用户必须使用Enter键提交编辑。

    从以下版本开始:
    JavaFX 8u40
    另请参见:
    SpinnerValueFactory
    • 字段详细信息

      • STYLE_CLASS_ARROWS_ON_RIGHT_HORIZONTAL

        public static final String STYLE_CLASS_ARROWS_ON_RIGHT_HORIZONTAL
        箭头放置在Spinner的右侧,水平(即左右)指向。
        另请参见:
        Constant Field Values
      • STYLE_CLASS_ARROWS_ON_LEFT_VERTICAL

        public static final String STYLE_CLASS_ARROWS_ON_LEFT_VERTICAL
        箭头放置在旋钮的左侧,垂直指向(即上下)。
        另请参见:
        Constant Field Values
      • STYLE_CLASS_ARROWS_ON_LEFT_HORIZONTAL

        public static final String STYLE_CLASS_ARROWS_ON_LEFT_HORIZONTAL
        箭头放置在Spinner的左侧,水平(即左右)指向。
        另请参见:
        Constant Field Values
      • STYLE_CLASS_SPLIT_ARROWS_VERTICAL

        public static final String STYLE_CLASS_SPLIT_ARROWS_VERTICAL
        将箭头放置在旋转器的上方和下方,拉伸以占据整个宽度。
        另请参见:
        Constant Field Values
      • STYLE_CLASS_SPLIT_ARROWS_HORIZONTAL

        public static final String STYLE_CLASS_SPLIT_ARROWS_HORIZONTAL
        减量箭头位于微调器的左侧,右侧的增量。
        另请参见:
        Constant Field Values
    • 构造方法详细信息

      • Spinner

        public Spinner​()
        构造一个默认的Spinner实例,使用默认的“spinner”样式类和不可编辑的编辑器。
      • Spinner

        public Spinner​(int min,
                       int max,
                       int initialValue)
        创建一个微调实例与value factory设置为实例SpinnerValueFactory.IntegerSpinnerValueFactory 请注意,如果调用此构造函数,则Spinner实例的唯一有效通用类型为Integer,即Spinner <Integer>。
        参数
        min - Spinner的最小允许整数值。
        max - Spinner的最大允许整数值。
        initialValue - 当第一次实例化时,Spinner的值必须在min和max参数的范围内,否则将使用最小值。
      • Spinner

        public Spinner​(int min,
                       int max,
                       int initialValue,
                       int amountToStepBy)
        创建一个微调实例与value factory设置为实例SpinnerValueFactory.IntegerSpinnerValueFactory 请注意,如果调用此构造函数,则Spinner实例的唯一有效通用类型为Integer,即Spinner <Integer>。
        参数
        min - Spinner的最小允许整数值。
        max - Spinner允许的最大整数值。
        initialValue - 第一次实例化时,Spinner的值必须在min和max参数的范围内,否则将使用最小值。
        amountToStepBy - 每步骤增加或减少的量。
      • Spinner

        public Spinner​(double min,
                       double max,
                       double initialValue)
        创建一个微调实例与value factory设置为实例SpinnerValueFactory.DoubleSpinnerValueFactory 请注意,如果调用此构造函数,则Spinner实例的唯一有效通用类型为Double,即Spinner <Double>。
        参数
        min - Spinner的最小允许双倍值。
        max - Spinner的最大允许双倍值。
        initialValue - 第一次实例化时,微调器的值必须在min和max参数的范围内,否则将使用最小值。
      • Spinner

        public Spinner​(double min,
                       double max,
                       double initialValue,
                       double amountToStepBy)
        创建一个微调实例与value factory设置为实例SpinnerValueFactory.DoubleSpinnerValueFactory 请注意,如果调用此构造函数,则Spinner实例的唯一有效通用类型为Double,即Spinner <Double>。
        参数
        min - Spinner的最小允许双倍值。
        max - Spinner的最大允许双倍值。
        initialValue - 当第一次实例化时,Spinner的值必须在min和max参数的范围内,否则将使用最小值。
        amountToStepBy - 每步骤增加或减少的量。
      • Spinner

        public Spinner​(SpinnerValueFactory<T> valueFactory)
        使用给定值出厂设置创建一个Spinner实例。
        参数
        valueFactory - 要使用的 value factory
    • 方法详细信息

      • createDefaultSkin

        protected Skin<?> createDefaultSkin​()
        为此控件创建一个新的默认皮肤实例。 如果没有通过CSS -fx-skin提供皮肤或者在具有setSkin(...)的子类中显式设置,则会调用此控件创建皮肤。
        重写:
        createDefaultSkinControl
        结果
        此控件的默认皮肤的新实例。 如果为null,则控件将没有皮肤,除非由css提供。
      • commitValue

        public final void commitValue​()
        如果微调器是 editable ,调用此方法将尝试提交当前文本并将其转换为 value
        从以下版本开始:
        9
      • cancelEdit

        public final void cancelEdit​()
        如果微调器是 editable ,调用此方法将尝试用最后提交的 value替换编辑器文本。
        从以下版本开始:
        9
      • getValue

        public final T getValue​()
        获取属性值的值。
        Property description:
        Spinner上的value属性是只读属性,因为它绑定到SpinnerValueFactory value property 如果value factory发生变化,此值属性将与旧值工厂绑定并绑定到新值。

        如果开发人员希望修改value属性,他们可以使用以下形式的代码:

           Object newValue = ...; spinner.getValueFactory().setValue(newValue);  
      • valueProperty

        public final ReadOnlyObjectProperty<T> valueProperty​()
        Spinner上的value属性是只读属性,因为它绑定到SpinnerValueFactory value property 如果value factory发生变化,此值属性将与旧值工厂绑定并绑定到新值。

        如果开发人员希望修改value属性,他们可以使用以下形式的代码:

           Object newValue = ...; spinner.getValueFactory().setValue(newValue);  
        另请参见:
        getValue()
      • setValueFactory

        public final void setValueFactory​(SpinnerValueFactory<T> value)
        设置属性valueFactory的值。
        Property description:
        价值工厂是JavaFX Spinner控件背后的模型 - 没有工厂安装的Spinner不可用的值。 价值工厂处理Spinner几乎所有方面的作用,包括:
      • getValueFactory

        public final SpinnerValueFactory<T> getValueFactory​()
        获取属性valueFactory的值。
        Property description:
        价值工厂是JavaFX Spinner控件背后的模型 - 没有工厂安装的Spinner不可用的值。 价值工厂处理Spinner几乎所有方面的作用,包括:
      • setEditable

        public final void setEditable​(boolean value)
        设置属性可编辑的值。
        Property description:
        可编辑属性用于指定用户输入是否能够输入到Spinner editor 如果可编辑为真,用户输入后将按照Enter键的方式接收用户输入。 此时,输入将传递给SpinnerValueFactory converter StringConverter.fromString(String)方法。 来自此呼叫(类型T)的返回值然后发送到SpinnerValueFactory.setValue(Object)方法。 如果值有效,它将保持为该值。 如果它是无效的,工厂将需要做出相应的反应并退出这个改变。
      • isEditable

        public final boolean isEditable​()
        获取可编辑属性的值。
        Property description:
        可编辑属性用于指定用户输入是否能够输入到Spinner editor 如果可编辑为真,用户输入后将按照Enter键的方式接收用户输入。 此时,输入将传递给SpinnerValueFactory converter StringConverter.fromString(String)方法。 来自此呼叫(类型T)的返回值然后发送到SpinnerValueFactory.setValue(Object)方法。 如果值有效,它将保持为该值。 如果它是无效的,工厂将需要做出相应的反应并退出这个改变。
      • getEditor

        public final TextField getEditor​()
        获取属性编辑器的值。
        Property description:
        Spinner控件使用的编辑器。
      • getPromptText

        public final String getPromptText​()
        获取属性promptText的值。
        Property description:
        Spinner显示的提示文本,如果没有显示提示文本,则显示 null
        从以下版本开始:
        9
      • setPromptText

        public final void setPromptText​(String value)
        设置属性promptText的值。
        Property description:
        Spinner显示的提示文本,如果没有显示提示文本,则显示 null
        从以下版本开始:
        9
      • queryAccessibleAttribute

        public Object queryAccessibleAttribute​(AccessibleAttribute attribute,
                                               Object... parameters)
        该方法由辅助技术调用以请求属性的值。

        子类通常覆盖此方法来实现特定角色所需的属性。
        如果未处理特定属性,则必须调用超类实现。

        重写:
        queryAccessibleAttributeControl
        参数
        attribute - 请求的属性
        parameters - 可选参数列表
        结果
        请求的属性的值
        另请参见:
        AccessibleAttribute
      • executeAccessibleAction

        public void executeAccessibleAction​(AccessibleAction action,
                                            Object... parameters)
        该方法由辅助技术调用,请求执行由参数指示的动作。

        此方法通常被子类覆盖,以实现特定角色所需的操作。
        如果未处理特定操作,则必须调用超类实现。

        重写:
        executeAccessibleActionControl
        参数
        action - 执行的动作
        parameters - 可选参数列表
        另请参见:
        AccessibleAction