はじめに
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
- メディア: 単行本