Eclipse 4.4ではじめる Javaプログラミング入門 Eclipse 4.4 Luna対応

グラフィック・ファイルアクセス・スレッド・日付/テキスト処理 - グラフィック処理の基本

Icon comment count 0
Icon stock count 0

4.1.6Initializableによる初期化処理

では、リスト4.4のWindowControllerでどのようなことが行われているのか、その詳細について説明していきましょう。ポイントは2つあります。1つはコントローラーの初期化処理、もう1つは描画処理です。

ここでは、画面に表示をしたときに描画の処理が自動的に実行され、グラフィックが表示されるようにしておかなければいけません。そのために必要となるのが初期化処理です。これは、コンストラクタなどに記述しておけばいい、ということにはなりません。なぜなら、コンストラクタが呼ばれる段階では、まだ@FXMLのフィールド(リスト4.4でいえば、canvasフィールド)などにオブジェクトが設定されていないからです。

コントローラークラスでは、FXMLに用意されたコントロールのオブジェクトを@FXMLアノテーションでフィールドに関連付けることができます。が、これはnewした段階で既に設定されているわけではありません(つまり、コンストラクタが呼び出される段階では、まだフィールドはnullのままです)。インスタンス作成後、JavaFXのシステムによってアノテーションを元にバインド処理が行われ、利用できるようになるのです。従って、コントロールの初期化処理などは、こうしたコントローラーのための処理が完了した後で行わなければいけません。

それを行うために用意されたのがInitializableインターフェイスです。

コメント

    コメントはありません