JavaFX Scriptにおけるクラスの作成方法

このサンプルアプリケーションでは、アプリケーションが使用するデータを格納するためのモデルクラスを作成した。こうした、MVC(モデル-ビュー-コントローラ)パターンはJavaFXプログラミングにおいても、データと表示を分離できるという点でやはり有効だ。

このように、JavaFXではクラスを作成するのも非常に簡単だ。クラスの作成方法に関する詳しい解説は別の機会に譲るとして、本稿ではポイントを押さえた簡単な解説を以下に行う。

JavaFXにおけるクラスの作成方法とその注意点は以下のようなものだ。

  • クラスの宣言方法は、「class クラス名 {}」というようにclassキーワードを用いる
  • クラスは、extendsキーワードを用いて別のクラスを継承できる。継承するクラスの数に制限はない
  • クラス内には、「属性(attribute)」「関数(function)」「オペレーション(operation)」を含めることができる
  • クラスの宣言と定義は別々の場所で行う。以下のコードを参照

こうしたポイントをすべて網羅したコードを以下に示す。

リスト3:JavaFX Scriptにおけるクラスの宣言、定義

//===== 親クラス1の宣言
class Parent1 {
    attribute a:Integer;
}
// 親クラス1の属性定義
attribute Parent1.a = 888;

//===== 親クラス2の宣言
class Parent2 {
    operation ope():String;
}
// 親クラス2のオペレーションを定義
operation Parent2.ope():String {
    return "Parent2.ope() is called";
}
//===== 2つの親クラスを多重継承したクラスChildを作成
class Child extends Parent1, Parent2{
}
var child = new Child();
// 実行結果は"a=888, b=Parent2.ope() is called"となる
System.out.println("a={child.a}, ope()={child.ope()}");

このサンプルのまとめ

このサンプルコードでは、クラスの作成方法bind属性の使用法(増分評価)が最も大きなポイントだ。これらのテクニックによるモデルとビューの分離は、JavaFXにおけるUIプログラミングの基本中の基本とも言えるものなので、しっかり身につけておきたい。 他にも、文字列リテラル内でJavaFX Script式を使用する方法(「{}」の使用)や、フローパネル、テキストフィールドといったUIコンポーネントについても解説した。