『みんなの Java OpenJDK から始まる大変革期!』を読んでいて、何となく Liberica JDK 11 の JavaFX 11 で Getting Started with JavaFX をやってみたのでメモっとく。
ほとんどの OpenJDK ディストリビューションには JavaFX (OpenJFX) は含まれていない。なので、Getting Started with JavaFX の手順を素直にやるとちょっと手間がかかる。でも、Liberica JDK 11 を SDKMAN! などでインストールすれば簡単に JavaFX 11 で遊べる。
SDKMAN! で Liberica JDK 11 をインストールする
SDKMAN! で Liberica JDK 11 をインストールする。JavaFX が含まれないバージョンもあるので注意する。インストールできる Java バージョンの一覧は sdk list java
コマンドで確認できる。
$ sdk install java 11.0.6.fx-librca
Getting Started with JavaFX のコードで Hello World する
HelloFX.java というファイル名で下記のコードを保存する。Java と JavaFX のバージョンを取得して、それを含めた文字列で Label コントロールを生成し StackPane レイアウトに配置して表示しているようだ。
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class HelloFX extends Application {
@Override
public void start(Stage stage) {
String javaVersion = System.getProperty("java.version");
String javafxVersion = System.getProperty("javafx.version");
Label l = new Label("Hello, JavaFX " + javafxVersion + ", running on Java " + javaVersion + ".");
Scene scene = new Scene(new StackPane(l), 640, 480);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch();
}
}
それではコンパイルして、実行してみよう。SDKMAN! で Liberica JDK 11 が設定されていることを必ず確認すること。設定されていなければ sdk use java 11.0.6.fx-librca
コマンドを実行してから、下記のコマンドを実行してね。
$ sdk current java
Using java version 11.0.6.fx-librca
$ javac HelloFX.java
$ java HelloFX
こんな画面が表示されたら成功。
アプリケーションとして配布するとなると考えることは多いけど、社内ツールで簡単な GUI がほしいとかそういうことであれば、Liberica JDK 11 を用いた JavaFX は便利そうだ。
今回は Liberica JDK 11 の JavaFX 11 (OpenJFX) で Hello World してみた。ちゃんとした開発環境を構築するとなると、IntelliJ IDEA と Scene Builder を利用するといいみたい。ちょっと眺めただけなのだが『The Definitive Guide to Modern Java Clients with JavaFX』にそういう開発環境の構築手順が記載されていた。
参考文献
みんなの Java OpenJDK から始まる大変革期!
The Definitive Guide to Modern Java Clients with JavaFX