JavaFX8 を Gradle で始める

f:id:Naotsugu:20150421011141p:plain

JavaFX8 を Gradle でビルドするのは色々と手間なことが多く、

(javafx-gradle plugin)https://bitbucket.org/shemnon/javafx-gradle/overviewを使うのが手っ取り早い。

現在 0.4.0 がリリースされているので、以下のような build.gradle を用意(gradleは新しいのを入れておくべし)。

apply from: 'http://dl.bintray.com/content/shemnon/javafx-gradle/0.4.0/javafx.plugin'

sourceCompatibility = 1.8
targetCompatibility = 1.8
version = '1.0'

repositories {
    mavenCentral()
}

簡単な Main クラスを準備して

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception {
        primaryStage.setTitle("Hello World!");
        Button btn = new Button();
        btn.setText("Say 'Hello World'");
        btn.setOnAction(event -> System.out.println("Hello World."));

        StackPane root = new StackPane();
        root.getChildren().add(btn);
        primaryStage.setScene(new Scene(root, 300, 250));
        primaryStage.show();
    }


    public static void main(String[] args) {
        launch(args);
    }
}

実行

gradle run

f:id:Naotsugu:20150421005542p:plain

クリックするとイベントによりコンソールに Hello World が出る。

$ gradle run
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:cssToBin UP-TO-DATE
:classes UP-TO-DATE
:run
Hello World.
Hello World.
Hello World.

プラグインの詳細はこちらに詳しい。

Tutorial: A guide to the Gradle JavaFX Plugin - JAXenter

Nashorn で JavaFX 8

Nashorn 使うと JavaScriptJavaFX 書ける。

以下のような javaFX.js を用意して、

var btn = new javafx.scene.control.Button()
btn.text = 'Say Hello World'
btn.setOnAction(function(event) print("Hello World."))

var root = new javafx.scene.layout.StackPane()
root.getChildren().add(btn)
$STAGE.scene = new javafx.scene.Scene(root, 300, 250)
$STAGE.show()

jjs に -fx オプション付きで起動する。

> $JAVA_HOME/bin/jjs -fx javaFX.js

同じように JavaFX アプリケーションが起動する。

f:id:Naotsugu:20150421005542p:plain



Javaプログラマーなら習得しておきたい Java SE 8 実践プログラミング (impress top gear)

Javaプログラマーなら習得しておきたい Java SE 8 実践プログラミング (impress top gear)

Pro JavaFX 8: A Definitive Guide to Building Desktop, Mobile, and Embedded Java Clients

Pro JavaFX 8: A Definitive Guide to Building Desktop, Mobile, and Embedded Java Clients