はじめてのJavaFX 2.0

JavaFX2.0のベータが公開されました。正式版は秋とのことですが、方針変更してからのスピードは結構早く、1.xのときのような言語、プラットフォームを広く設定して収束できなかったことは2.0ではないように見えます。

あくまでもJavaAPIとなったので、JavaVMを利用する他の言語でも扱えるということになります。たぶんFXScriptのような軽い開発を考えている人にとってはGroovyあたりがよいのかもしれませんね。

でも、GUIって結構イベント飛び交うので型がしっかりわかるJavaJavaに限りなく近い書き方をしたGroovyあたりがいい気もします。


というわけで、今回は誰も書かないような一番基本となるセットアップからプロジェクト作成、実行までの手順を軽く書いてみます。

ダウンロード

http://www.oracle.com/technetwork/java/javafx/downloads/index.html

ここにある一番下のプラグインだけダウンロードするとよい。展開してNetBeansのメニュー「ツール」−「プラグイン」でダイアログ開いてダウンロード済みのタブを選択、展開したファイルをくわせる。SDKは別途用意する必要なし。

プロジェクトの作成

http://shin.cside.com/diary/2011/0528-01.png

プロジェクトの新規作成でJavaFXアプリケーションが選べるようになっている。最初カテゴリが追加されていなくてあせったけど、あくまでもJavaというのがポイントか。

実行

プロジェクトを開くとNetBeansお約束のサンプルコードがすでに入っている。
全ソースは省略なしで以下の通り。コメントだけ削除してます。

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.paint.Color;
import javafx.stage.Stage;

public class JavaFXApplication1 extends Application {

    public static void main(String[] args) {
        Application.launch(JavaFXApplication1.class, args);
    }
    
    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("Hello World");
        Group root = new Group();
        Scene scene = new Scene(root, 300, 250, Color.LIGHTGREEN);
        Button btn = new Button();
        btn.setLayoutX(100);
        btn.setLayoutY(80);
        btn.setText("Hello World");
        btn.setOnAction(new EventHandler<ActionEvent>() {

            public void handle(ActionEvent event) {
                System.out.println("Hello World");
            }
        });
        root.getChildren().add(btn);        
        primaryStage.setScene(scene);
        primaryStage.setVisible(true);
    }
}

F6、もしくはツールバーやメニューから実行するだけ。


実行結果。
http://shin.cside.com/diary/2011/0528-02.png

ボタンをクリックするたびにログがでます。アイコンがJavaのやつじゃないところがなんかを気にしてる感じ。


とりあえずコードを1行も書かないで実行確認するところまでできました。