You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让JavaFX Spinner触达最值时循环切换数值范围?

JavaFX Spinner实现循环数值切换的简便方法

不用手动监听箭头点击事件,JavaFX的SpinnerValueFactory内置了wrapAround属性,直接开启就能实现你要的循环效果:

  • 当数值为最小值(1)时,按下向下箭头自动切换到最大值(5)
  • 当数值为最大值(5)时,按下向上箭头自动切换到最小值(1)

实现代码

有两种常用写法,效果完全一致:

写法1:直接创建Spinner后配置

// 初始化Spinner,设置最小、最大、初始值
Spinner<Integer> spinner = new Spinner<>(1, 5, 3);
// 开启循环切换
spinner.getValueFactory().setWrapAround(true);

写法2:先配置SpinnerValueFactory再创建Spinner

// 创建数值工厂并配置参数
SpinnerValueFactory<Integer> valueFactory = new SpinnerValueFactory.IntegerSpinnerValueFactory(1, 5, 3);
// 开启循环
valueFactory.setWrapAround(true);
// 绑定到Spinner
Spinner<Integer> spinner = new Spinner<>(valueFactory);

说明

wrapAround是SpinnerValueFactory的布尔类型属性,默认值为false。设置为true后,Spinner会自动处理边界值的循环切换,无需额外编写事件监听逻辑,完全满足你的需求。

内容的提问来源于stack exchange,提问作者Jakub

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 10:30:51