2016-07-31 45 views
8

我在制作GUI使用JavaFx我需要滑块,只允许integers永远被选中。JavaFX Slider integer only

我知道我可以使用snapToTicks,但在拉动"knob"时,它仍然可以代表non-integer的值。我想摆脱这一点。它混淆了链接到它的其他组件。

基本上我想要类似Swing's JSlider,但JavaFx。可能吗?我一直在寻找,但我找不到任何东西。

回答

8

您只需一个监听器添加到SlidervalueProperty,然后您可以设置新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()))); 
+0

这是一个很不错的主意,我只是不喜欢四舍五入(原因见我对SkyWalker的评论)。我仍然可以使用它。 –

+0

您也可以使用像'((int)Math.round(newVal.doubleValue()))'的整数舍入。这两种方法只是不允许在整数值之间具有“旋钮”。 – DVarga

+0

这听起来更好,但我仍然想知道是否有更合法的方法。 –