主なコントロールの利用 (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();
}
}
※関連コンテンツ