JavaFX の Spinner クラスは、アプリケーションの設定値に使用するような数値の微調整をするウィジェット(UI 部品)として重宝しています。しかし、デフォルトでは数値は左寄せで表示されます。数値なので右寄せに表示したいのですが、いつもやり方を忘れてしまい、しばらく試行錯誤したりインターネット上を探し回ります。
直感的に覚えにくい仕様だ、というのは言い訳に過ぎず、きっと真剣に覚える気が無いせいでしょう。そんな自分の為に備忘録としてごくごく簡単なサンプルを示しておきました。
使用した環境は以下の通りです。
- OS
- Fedora 27 (x86_64)
- Java
- java-1.8.0-openjdk-1.8.0.161-5.b14.fc27.x86_64
- JavaFX
- openjfx-8.0.152-12.b04.fc27.x86_64
- IDE
- NetBeans IDE Dev (Build 201703170002)
下記は、デフォルトと右寄せ表示の Spinner ウィジェットを縦に並べて表示するサンプルです。
リスト:SpinnerTest.java
package spinnertest;
import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Spinner;
import javafx.scene.control.SpinnerValueFactory;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class SpinnerTest extends Application {
@Override
public void start(Stage primaryStage) {
VBox root = new VBox();
Spinner<Integer> spinner1 = new Spinner<>();
SpinnerValueFactory<Integer> valueFactory1 = new SpinnerValueFactory.IntegerSpinnerValueFactory(1, 10, 5);
spinner1.setValueFactory(valueFactory1);
root.getChildren().add(spinner1);
Spinner<Integer> spinner2 = new Spinner<>();
SpinnerValueFactory<Integer> valueFactory2 = new SpinnerValueFactory.IntegerSpinnerValueFactory(1, 10, 5);
spinner2.setValueFactory(valueFactory2);
spinner2.getEditor().setAlignment(Pos.CENTER_RIGHT);
root.getChildren().add(spinner2);
Scene scene = new Scene(root);
primaryStage.setTitle("Spinner Test");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
実行例を以下に示します。
SpinnerTest.java の実行例
参考サイト
にほんブログ村



0 件のコメント:
コメントを投稿