JavaFX 8u40新控件 - Spinner

本文详细介绍了JavaFX 8u40中的Spinner控件,包括三种类型的SpinnerValueFactory,控件的属性如editable和valueFactory,以及箭头按钮的不同样式。还列举了构造函数和关键方法,如increment/decrement操作,并提供了示例代码。
摘要由CSDN通过智能技术生成
案例截图

一、概述

Spinner是一个单行文本域, 允许用户从一个有序序列中选择一个数字或者对象。 Spinner通常提供一对小箭头按钮来逐步遍历序列中的元素。键盘的上/下箭头键也可以循环遍历这些元素。它也允许用户在Spinner中直接输入一个(有效的)值。尽管Combo Box提供了类似的功能,但是Spinner有些场景会更加适合。因为它不需要一个可隐藏重要数据的下拉列表。还有,它拥有循环和无穷数据模型等特性。其无穷数据模型是通过SpinnerValueFactory实现的,这和其他JavaFX UI控件使用的ObservableList数据模型不一样。

Spinner的序列数据是使用SpinnerValueFactory来定义的。可以通过Spinner类的构造函数传入此对象来进行设置。JavaFX中提供了一些常用类型的SpinnerValueFactory,如下:
  • SpinnerValueFactory.IntegerSpinnerValueFactory 
  • SpinnerValueFactory.DoubleSpinnerValueFactory 
  • SpinnerValueFactory.ListSpinnerValueFactory

Spinner包含一个TextField子组件,用于展示或者修改当前值,被称作编辑器。默认情况下,Spinner是不可编辑的,但你可以通过设置其editable属性为true来开启它。编辑器会通过监听Value Factory的value属性变化来保持数据同步。如果用户在编辑器中修改了值,这很可能导致Spinner本身的值和编辑器的值不一致。此时用户必须通过敲击Enter键来提交编辑的内容,以确保二者的值保持一致。

该控件始于JavaFX 8u 40。

二、自有属性

  • BooleanProperty editable 
            指示Spinner的编辑器是否可以接收用户输入
  • ReadOnlyObjectProperty<TextField> editor
            Spinner的编辑器
    StackPane 是 JavaFX 中常用的布局之一,它可以将多个控件放置在同一位置,通过设置控件的堆叠顺序来显示所需的控件。在 StackPane 中,所有控件默认都是居中对齐的,而且它们会自动适应窗口大小的变化。 下面是一个简单的 StackPane 示例代码: ```java import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.StackPane; import javafx.stage.Stage; public class StackPaneExample extends Application { @Override public void start(Stage primaryStage) { Button button1 = new Button("Button 1"); Button button2 = new Button("Button 2"); Button button3 = new Button("Button 3"); StackPane stackPane = new StackPane(); stackPane.getChildren().addAll(button1, button2, button3); Scene scene = new Scene(stackPane, 300, 200); primaryStage.setTitle("StackPane Example"); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } } ``` 在这个示例代码中,我们创建了三个按钮,并将它们添加到 StackPane 中。最后,我们创建了一个 Scene 并将 StackPane 设置为根节点,然后将该 Scene 设置为 primaryStage 的场景。运行程序,你可以看到三个按钮都被居中显示在窗口中央。 当然,StackPane 不仅仅只能用于放置按钮,你可以将任何控件添加到 StackPane 中,例如图片、标签、文本框等等。在 StackPane 中,后添加的控件会自动放在前面添加的控件上面,你可以通过设置控件的 Z 轴坐标来改变它们的堆叠顺序。
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值