JavaFXでスライダーの作成・イベントを登録する方法などについて記載します。
目次
スライダーの作成・イベントの登録方法
スライダーを作成するには、Sliderクラスを使用します。
構文
Slider slider = new Slider();
実行例
スライダーを動かすと、右側のラベルに変更後の値が表示されます。

| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | import javafx.application.Application; import javafx.beans.value.ObservableValue; import javafx.geometry.Pos; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.scene.control.Slider; import javafx.scene.layout.HBox; import javafx.stage.Stage; public class Main extends Application  {     @Override     public void start(Stage pStage) throws Exception {         // スライダー         Slider slider = new Slider();         slider.setMin(0); // 最小値         slider.setMax(100); // 最大値         slider.setValue(50); // 初期値         slider.setMajorTickUnit(50); // 大メモリの間隔         slider.setMinorTickCount(5); // 大メモリ内のメモリ数         slider.setShowTickLabels(true); // メモリ値の表示         slider.setShowTickMarks(true); // メモリ線の表示         slider.setBlockIncrement(10); // 矢印キーなどで操作した際の値の増減値         slider.setPrefWidth(200);         // スライダーの値を表示するラベル         Label lblSliderValue = new Label(Double.toString(slider.getValue()));         lblSliderValue.setPrefWidth(50);         // スライダーにイベントを登録する         slider.valueProperty().addListener((                 ObservableValue<? extends Number> ov, Number oldVal, Number newVal) -> {                     lblSliderValue.setText(String.format("%.1f", newVal)); // 変数newValに変更後の値が格納されている                 });         // 配置         HBox hbRoot = new HBox();         hbRoot.setAlignment(Pos.CENTER);         hbRoot.setSpacing(20);         hbRoot.getChildren().addAll(slider, lblSliderValue);         pStage.setTitle("スライダー");         pStage.setWidth(300);         pStage.setHeight(200);         pStage.setScene(new Scene(hbRoot));         pStage.show();     }     public static void main(String[] args){         Application.launch(args);     } } | 
1. イベントの登録方法
スライダーにイベントを登録するには、addListener メソッドを使用します。
構文
slider.valueProperty().addListener((
ObservableValue<? extends Number> ov, Number oldVal, Number newVal) -> {
// イベント発生時の処理
});
ObservableValue<? extends Number> ov, Number oldVal, Number newVal) -> {
// イベント発生時の処理
});
引数の oldVal には変更前の値が、newVal には変更後の値が格納されています。
2. 最小・最大値の設定
最小値の設定には setMinメソッド、最大値の設定には setMax メソッドを使用します。
構文
Slider slider = new Slider();
slider.setMin(0); // 最小値
slider.setMax(100); // 最大値
slider.setMin(0); // 最小値
slider.setMax(100); // 最大値
3. 大メモリの間隔の設定
大メモリの設定には setMajorTickUnit メソッドを使用します。
構文
Slider slider = new Slider();
slider.setMajorTickUnit(50);
slider.setMajorTickUnit(50);
上記のようにすると、50毎に大メモリで区切られます。

次のように書き換えると25毎に大メモリで区切られます。
slider.setMajorTickUnit(25);

4. 大メモリ内のメモリ間隔の設定
大メモリ内のメモリ間隔の設定には setMinorTickCount メソッドを使用します。
構文
Slider slider = new Slider();
slider.setMinorTickCount(5);
slider.setMinorTickCount(5);
上記の場合、大メモリ内に5つの小メモリが表示されます。

次のように書き換えると大メモリ内に1つの小メモリが表示されます。
slider.setMinorTickCount(1);

5. メモリ値・線の表示、非表示の設定
メモリ値の表示は、setShowTickLabels メソッドを使用します。
メモリ線の表示は、setShowTickMarks メソッドを使用します。
どちらも、trueの場合は表示、falseの場合は非表示になります。
構文
Slider slider = new Slider();
slider.setShowTickLabels(true); // メモリ値の表示
slider.setShowTickMarks(true); // メモリ線の表示
slider.setShowTickLabels(true); // メモリ値の表示
slider.setShowTickMarks(true); // メモリ線の表示
この場合、メモリ値・線ともに表示します。

次のように書き換えると、メモリ値・線ともに非表示になります。
slider.setShowTickLabels(false); // メモリ値を非表示
slider.setShowTickMarks(false); // メモリ線を非表示
slider.setShowTickMarks(false); // メモリ線を非表示

6. 矢印キーでの増減値の設定
矢印キーでスライダーをコントロールした際の値の増減値は、setBlockIncrement メソッドで設定します。
構文
Slider slider = new Slider();
slider.setBlockIncrement(10);
slider.setBlockIncrement(10);
上記では、引数に10を設定しているので、矢印キーで操作すると10ずつ増減します。