libro
www.tuyano.com
初心者のためのJavaFXプログラミング入門

FXMLでアクションイベントを実装する (4/5)

作成:2014-12-13 11:35
更新:2014-12-13 11:35

■コントローラーを実装する

では、コントローラークラスを作成しましょう。今回はcom.tuyano.libroパッケージに「AppController.java」というファイル名で用意することになります。下のリストを記述してください。これで、先ほどの<fx:script>タグを使ったのと同じ処理が実装されます。

では、これもポイントをピックアップして解説しておきましょう。
@FXML Label label1;
@FXML TextField field1;
クラスには、LabelTextFieldがインスタンスフィールドとして用意されています。が、これらの変数にインスタンスを代入する処理はどこにもありません。「@FXML」というアノテーションを付けることで、FXMLにある同名のfx:idのインスタンスがバインドされるようになっています。
@FXML
protected void doAction(ActionEvent ev){……}
アクションメソッドも、やはり@FXMLアノテーションでバインドします。メソッドはprotectedにする必要があるので注意しましょう。また、Eventクラスのインスタンスを引数として用意します。アクションイベントならば、ActionEventインスタンスが渡されます。

後は、特に注意すべき点はありません。既に@FXMLを指定したフィールドにはインスタンスが割り当てられていますから、Javaのコードでそれらを操作するごく普通の処理を書けばいいのです。Javaで書けるって楽ちん!

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

package com.tuyano.libro;

import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;

public class AppController {
    @FXML Label label1;
    @FXML TextField field1;
    
    @FXML
    protected void doAction(ActionEvent ev){
        String str = field1.getText();
        str = "あなたは、「" + str + "」と書いた。";
        label1.setText(str);
    }
}
※関連コンテンツ

「初心者のためのJavaFXプログラミング入門」に戻る