我正在使用JavaFx制作一个GUI,我需要滑块,只允许integers被选中。
我知道我可以使用snapToTicks,但在拉取"knob"的同时,它仍然可以表示non-integer值。我想摆脱它。它搞乱了链接到它的其他组件。
基本上,我想要的是像Swing's JSlider这样的东西,但是要有JavaFx。有可能吗?我一直在找,但什么也找不到。
发布于 2016-07-31 17:28:10
您可以简单地向Slider的valueProperty添加一个侦听器,然后您可以设置新Number值的integer value:
slider.valueProperty().addListener((obs, oldval, newVal) ->
slider.setValue(newVal.intValue()));或者,您也可以使用Math.round进行整数舍入
slider.valueProperty().addListener((obs, oldval, newVal) ->
slider.setValue(Math.round(newVal.doubleValue())));发布于 2018-08-15 19:35:33
在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的值:

https://stackoverflow.com/questions/38681664
复制相似问题