如何使JavaFX滑块以离散的步骤移动?
我正在使用,我需要只允许被选中的滑块。GUI
JavaFx
integers
我知道我可以使用,但是在拉动时,它仍然可以表示一个值。我想摆脱它。它搞砸了链接到它的其他组件。snapToTicks
"knob"
non-integer
基本上,我想要类似的东西,但与.可能吗?我一直在寻找,但我找不到任何东西。Swing's JSlider
JavaFx
我正在使用,我需要只允许被选中的滑块。GUI
JavaFx
integers
我知道我可以使用,但是在拉动时,它仍然可以表示一个值。我想摆脱它。它搞砸了链接到它的其他组件。snapToTicks
"knob"
non-integer
基本上,我想要类似的东西,但与.可能吗?我一直在寻找,但我找不到任何东西。Swing's JSlider
JavaFx
您只需将侦听器添加到 的 ValueProperty
中,然后就可以设置新值的整数值:Slider
Number
slider.valueProperty().addListener((obs, oldval, newVal) ->
slider.setValue(newVal.intValue()));
或者,您也可以使用 Math.round
使用整数舍入:
slider.valueProperty().addListener((obs, oldval, newVal) ->
slider.setValue(Math.round(newVal.doubleValue())));
在FXML中:
<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中:
Slider slider = new Slider(1, 4, 1);
slider.setBlockIncrement(1);
slider.setMajorTickUnit(1);
slider.setMinorTickCount(0);
slider.setShowTickLabels(true);
slider.setSnapToTicks(true);
这里的关键是捕捉到分时选项,并结合适当的逐笔报价单位组合。此设置会产生以下滑块,该滑块只能用于选择范围从 1 到 4 的值: