主なコントロールの利用 (5/5)
作成:2014-11-29 10:24
更新:2014-11-29 10:24
更新:2014-11-29 10:24
■スライダーについて
アナログ的に「ここからここまでの間の値」を入力するのに用いられるのが「スライダー」です。スライダーは、マウスでバーのノブをドラッグすることで数値を設定します。これは、javafx.scene.controlパッケージに「Slider」というクラスとして用意されています。
引数なしで作成すると、デフォルトの状態でインスタンスを作成します。引数に最小値、最大値、現在の値をそれぞれdoubleで指定すると、指定された範囲内から値を選ぶようにできます。
このSliderは、表示に関する細かなプロパティをもっており、それらを設定することで表示の仕方をいろいろと調整できます。
・表示方向を設定する
HORIZONTAL――横方向を示す値です。
VERTICAL――縦方向を示す値です。
・目盛りの表示をO/OFFする
・値をスナップする
・値を操作する
では、これも簡単な利用例を下にあげておきましょう。ドラッグして適当に値を設定し、ボタンをクリックすると、現在の値が表示されます。なぜ別途ボタンを用意したかというと、Sliderクラスはアクションイベントが対応していないためです。
ただし、それ以外のイベントは用意されており、それらを利用して操作時の処理を実装することもできます。これについてはまた改めて説明することにしましょう。
new Slider()
new Slider( 最小値, 最大値, 現在値 )
引数なしで作成すると、デフォルトの状態でインスタンスを作成します。引数に最小値、最大値、現在の値をそれぞれdoubleで指定すると、指定された範囲内から値を選ぶようにできます。
このSliderは、表示に関する細かなプロパティをもっており、それらを設定することで表示の仕方をいろいろと調整できます。
・表示方向を設定する
《slider》.setOrientation(《Orientation》);これは、縦向き化横向きかを設定するものです。引数には、javafx.geometryパッケージのOrientationクラスのフィールドを指定します。このクラスには以下の2つのクラスフィールドが用意されています。
HORIZONTAL――横方向を示す値です。
VERTICAL――縦方向を示す値です。
・目盛りの表示をO/OFFする
《slider》.setShowTickMarks(《boolean》);スライダーには数値の目盛りを表示できます。setShowTickMarksはメモリの印を設定するもので、trueにするとメモリが表示されます。またsetShowTickLabelsは、メモリ内に最小値、最大値などの値を表示します。
《slider》.setShowTickLabels(《boolean》);
・値をスナップする
《slider》.setSnapToTicks(《boolean》);ドラッグした際、表示されている目盛りの位置に値が強制的に揃えられます。これがfalseだと、ドラッグは制約がなくなり、値はそのまま細かな実数値で得られるようになります。
・値を操作する
double 値 = 《slider》.getValue();Sliderの値は、getValue/setValueで操作できます。得られる値は、実数になります。
《slider》.setValue(《double》);
では、これも簡単な利用例を下にあげておきましょう。ドラッグして適当に値を設定し、ボタンをクリックすると、現在の値が表示されます。なぜ別途ボタンを用意したかというと、Sliderクラスはアクションイベントが対応していないためです。
ただし、それ以外のイベントは用意されており、それらを利用して操作時の処理を実装することもできます。これについてはまた改めて説明することにしましょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
package com.tuyano.libro; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.control.Slider; import javafx.scene.layout.BorderPane; import javafx.stage.Stage; public class App extends Application { Label label; Slider slider; Button button; public static void main(String[] args) { launch(args); } @Override public void start(Stage stage) throws Exception { label = new Label("This is JavaFX!"); slider = new Slider(0, 100, 50); slider.setShowTickMarks(true); slider.setShowTickLabels(true); slider.setSnapToTicks(true); button = new Button("CLICK"); button.setOnAction((ActionEvent)->{ label.setText("VALUE: " + slider.getValue()); }); BorderPane pane = new BorderPane(); pane.setTop(label); pane.setCenter(slider); pane.setBottom(button); Scene scene = new Scene(pane, 320, 120); stage.setScene(scene); stage.show(); } }
※関連コンテンツ