JavaFX 8u40新控件 - Spinner

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

案例截图

一、概述

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的编辑器
  • ObjectProperty<SpinnerValueFactory<T>>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值