
はじめに
Java 11 からは、JavaFX が同梱されなくなったため、別途 OpenJFX を導入する必要があります。
しかし、Maven や Gradle 向けにプラグインが提供されているため、導入はとても簡単です。
プロジェクトの作成
Gradle でプロジェクトを作成します。
$ mkdir example-javafx $ cd example-javafx $ gradle init --type java-application --test-framework junit
OpenJFX プラグインの導入
build.gradle を以下のように編集します。
plugins {
id 'java'
id 'application'
id 'org.openjfx.javafxplugin' version '0.0.8'
}
repositories {
jcenter()
}
dependencies {
testImplementation 'junit:junit:4.12'
}
application {
mainClassName = 'example.javafx.App'
}
javafx {
version = '11.0.2'
modules = [ 'javafx.controls' ]
}
プラグイン org.openjfx.javafxplugin を指定しています。
利用するバージョンとモジュールを javafx の中で指定します。
LTS(Long Term Support) の 11 ではなく、JavaFx 13 を使う場合は以下のように指定します。
javafx {
version = "13"
modules = [ 'javafx.controls' ]
}
モジュールは javafx.controls を指定すれば、合わせて javafx-base と javafx-graphics が依存として入ります。
アプリケーションの実行
簡単なものとして以下を作成します。
package example.javafx; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.scene.layout.StackPane; import javafx.stage.Stage; public class App extends Application { @Override public void start(Stage stage) { Label label = new Label("Hello, JavaFX"); Scene scene = new Scene(new StackPane(label), 640, 480); stage.setScene(scene); stage.show(); } public static void main(String[] args) { launch(); } }
実行しましょう。
$ gradlew run

実行できました。
モジュール
| モジュール | 説明 |
|---|---|
| javafx.base | JavaFX UIツールキットのベースAPI。バインディング、プロパティ、コレクション、イベントのAPIを含む |
| javafx.controls | JavaFX UIツールキットで使用可能なUIコントロール、チャート、およびスキン |
| javafx.fxml | JavaFX UIツールキットのための FXML API |
| javafx.graphics | JavaFX UIツールキット(アプリケーションのライフサイクル、シェイプ、変換、キャンバス、入力、ペイント、イメージ処理、エフェクトなど)のコア・シーン・グラフAPI、およびアニメーション、CSS、並行処理、ジオメトリ、印刷、およびウィンドウ処理用のAPI |
| javafx.media | MediaView や MediaPlayer を含む JavaFX UIツールキットの一部として、メディアおよびオーディオコンテンツの再生用のAPI |
| javafx.swing | SwingNode (JavaFXアプリケーション内にSwingを埋め込む)およびJFXPanel (JavaFXをSwingアプリケーションの中に埋め込む)を含む、JavaFX UIツールキットに含まれているJavaFX / Swing相互運用機能サポート用のAPI |
| javafx.web | JavaFX UIツールキットに含まれるWebView機能用のAPI |
モジュールグラフは以下のようになります。


Mastering JavaFX 10: Build advanced and visually stunning Java applications (English Edition)
- 作者:Grinev, Sergey
- 発売日: 2018/05/31
- メディア: Kindle版

JavaFX & Java8プログラミング―Javaによる新しいGUIプログラミング入門
- 作者:日向 俊二
- 発売日: 2015/08/01
- メディア: 単行本