2018-03-20

【備忘録】JavaFX Spinner の文字表示を右寄せする

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 の実行例

参考サイト

  1. Spinner (JavaFX 8)

 

ブログランキング・にほんブログ村へ
にほんブログ村

0 件のコメント: