2016-07-31 17 views
8

GUIJavaFxを使用しています。integersを選択できるスライダが必要です。JavaFXスライダ整数のみ

私は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

私はまだもっと正当な方法があるかどうかを知りたがっています。 –

関連する問題