GUI
を使用してJavaFx
を作成しています。integers
のみを選択できるようにするスライダーが必要です。
snapToTicks
を使用できることはわかっていますが、"knob"
をプルしている間も、non-integer
値を表すことができます。それを取り除きたいのですが。リンクされている他のコンポーネントをめちゃくちゃにします。
基本的には、Swing's JSlider
のようなものが必要ですが、JavaFx
が必要です。出来ますか?探していましたが何も見つかりません。
valueProperty
の Slider
にリスナーを追加するだけで、新しい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())));
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の範囲の値を選択する場合にのみ使用できる次のスライダーが作成されます。