ついにベールを脱いだJavaFX

第2回 JavaFXで作る初めてのアプリケーション

この記事を読むのに必要な時間:およそ 4.5 分

とりあえず,Hello, World!

やはり,はじめのアプリケーションはHello, World!にしましょう。

アプリケーションを作るには,まずプロジェクトを作成しなければなりません。先ほどのDisplay Shelfと同じように,メニューバーの[File]から[New Project...]を選択します。今回は,カテゴリにJavaFX,プロジェクトにJavaFX Script Applicationを選択し,[Next >]をクリックします図12⁠。

図12 プロジェクトの作成

図12 プロジェクトの作成

次はプロジェクト名などを決めるページに移動します。先ほどのサンプルではプロジェクトの名前と場所のみでしたが,JavaFX Script Applicationではその他の項目も存在します。プロジェクトの名称はHello, World!なので,helloとすることにしましょう。一番上のProject Nameの項にhelloを代入します。次のProject Locationは適宜設定してください。デフォルトのままでもまったくかまいません。ここでは,先ほどと同じくC:\NetBeansProjectsディレクトにプロジェクトを作成することにしました。

ソースが何もない状態からプロジェクトを作成するのであれば,次の[Empty Project]をチェックします。もし,すでにソースがあるのであれば,⁠From Sources]をチェックし,右側の[Add Folder...]ボタンからソースの存在するディレクトリを追加してください。ディレクトリは複数追加することが可能です。 ここでは,何もない状態から作成するので,⁠Empty Project]をチェックします。

次の[Set as Main Project]はメインプロジェクトにするかどうかのチェックです。最後の[Create Main File][Empty Project]をチェックした場合にメインスクリプトファイルを自動的に作成するかどうかを決めます。デフォルトでは,プロジェクト名がパッケージのMainファイルが作成されます。今回はそのまま,hello.Mainを作成することにしましょう。設定が完了したら[Finish]ボタンをクリックし,プロジェクトを作成します。

図13 プロジェクトの設定

図13 プロジェクトの設定

プロジェクトが作成すると,自動的にメインスクリプトファイルがエディタに表示されます。ここで表示されるスクリプトファイルはすでにある程度内容が記述されています。以下にhello.Mainファイルを示します。

リスト1 hello.Main

 1: /*
 2:  * Main.fx
 3:  *
 4:  * Created on 2008/12/01, 22:22:52
 5:  */
 6:  
 7: package hello;
 8:  
 9: import javafx.stage.Stage;
10: import javafx.scene.Scene;
11: import javafx.scene.text.Text;
12: import javafx.scene.text.Font;
13:  
14: /**
15:  * @author sakuraba
16:  */
17:  
18: Stage {
19:     title: "Application title"
20:     width: 250
21:     height: 80
22:     scene: Scene {
23:         content: Text {
24:             font : Font {
25:                 size : 24
26:             }
27:             x: 10, y: 30
28:             content: "Application content"
29:         }
30:     }
31: }

JavaFX ScriptのコメントはJavaと同じく,/* */ で囲むか,// の以下の部分になります。したがって,1行から5行目,14行から16行目がコメントとなります。また,パッケージもJavaと同じように存在し,宣言も同じように行います(7行目)。他のパッケージのクラスを使用するのであれば,9行~12行目に記述したようにimport文を使用します。

18行目からがアプリケーションの本体です。今まで明示的には説明してきませんでしたが,javafx.stage.StageクラスがSwingのJFrameに相当します。前回説明したように クラス名 { } でオブジェクトを生成するので,18行から31行はStageオブジェクトを生成しています。そして,並括弧の中でアトリビュートの初期化を行います。

ここでは,19行目でtitleアトリビュート,20行目でwidthアトリビュート,21行目でheightアトリビュートを初期化しています。21行目のsceneアトリビュートの型はjavafx.scene.Sceneです。ここではsceneアトリビュートにSceneオブジェクトを新たに生成して代入しています。

23行目のcontentがSceneクラスのアトリビュートです。ここでは文字列を描画するjavafx.scene.text.Textオブジェクトを代入しています。contentアトリビュートの型はjavafx.scene.Nodeクラスです。TextクラスはこのNodeクラスのサブクラスになります。Textクラスのアトリビュートとして,font,x,y,contentがあります。それぞれ,フォント,描画する位置のx座標,同じくy座標,描画する文字列となります。

このようなクラスやアトリビュートに関してはJavaFX APIドキュメント《要チェック URLを参照してください。Javadocに似た表記で,JavaFX Scriptで使用できるクラスや,そのアトリビュート,関数について説明されています。

このスクリプトファイルはこれだけで実行することができます。先ほどと同じく,左側のProjectsペインからプロジェクト名のhelloを右クリックし,ポップアップウィンドウから[Run Project]を選択します。実行結果を図14に示します。

図14 hello.Mainの実行結果

図14 hello.Mainの実行結果

著者プロフィール

櫻庭祐一(さくらばゆういち)

横河電機に勤務するかたわらJava in the Boxにて新しい技術を追い続けています。JavaOneは今年で11年目。名実共にJavaOneフリークと化しています。