首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让JavaFX滑块分步移动?

如何让JavaFX滑块分步移动?
EN

Stack Overflow用户
提问于 2016-07-31 15:13:24
回答 2查看 14.5K关注 0票数 16

我正在使用JavaFx制作一个GUI,我需要滑块,只允许integers被选中。

我知道我可以使用snapToTicks,但在拉取"knob"的同时,它仍然可以表示non-integer值。我想摆脱它。它搞乱了链接到它的其他组件。

基本上,我想要的是像Swing's JSlider这样的东西,但是要有JavaFx。有可能吗?我一直在找,但什么也找不到。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-31 17:28:10

您可以简单地向SlidervalueProperty添加一个侦听器,然后您可以设置新Number值的integer value

代码语言:javascript
复制
slider.valueProperty().addListener((obs, oldval, newVal) -> 
    slider.setValue(newVal.intValue()));

或者,您也可以使用Math.round进行整数舍入

代码语言:javascript
复制
slider.valueProperty().addListener((obs, oldval, newVal) ->
    slider.setValue(Math.round(newVal.doubleValue())));
票数 17
EN

Stack Overflow用户

发布于 2018-08-15 19:35:33

在FXML中:

代码语言:javascript
复制
<Slider fx:id="availableReproSelector" 
        blockIncrement="1.0" 
        cache="true" 
        majorTickUnit="1.0" 
        max="4.0" 
        min="1.0" 
        minorTickCount="0" 
        showTickLabels="true" 
        showTickMarks="true" 
        snapToTicks="true" 
        value="1.0" 
        />

或者在Java中:

代码语言:javascript
复制
Slider slider = new Slider(1, 4, 1);
slider.setBlockIncrement(1);
slider.setMajorTickUnit(1);
slider.setMinorTickCount(0);
slider.setShowTickLabels(true);
slider.setSnapToTicks(true);

这里的关键是捕捉到刻度选项与刻度单位的适当组合相结合。此设置将生成以下滑块,该滑块只能用于选择范围从1到4的值:

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38681664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档