4

JavaFX のイベ​​ント処理について質問があります。チュートリアル (および私が遭遇した他の例) に従って、イベント処理は JavaFX で次のように実行されます。

Button addBtn = new Button("Add");
addBtn.setOnAction(new EventHandler<ActionEvent>() {
    @Override
    public void handle(ActionEvent event) {
            System.out.println("Add Clicked");
    }
});

しかし、次の方法でボタンをクリックして「処理」できるかどうか疑問に思っています。

Button addBtn = new Button("Add");
addBtn.setOnAction(new addButtonClicked());

whereaddButtonClicked()は、ボタン クリックのアクションを処理するために定義および記述した独自のクラス (独自のメソッドと機能のセットを含む) です。

JavaFX のボタンに独自のイベント ハンドラー クラスをアタッチする方法はありますか?

4

2 に答える 2

6

EventHandler はインターフェース クラスです。したがって、「拡張」ではなく「実装」である必要があります。

private static class AddButtonClicked implements EventHandler<ActionEvent> {
     @Override
     public void handle(ActionEvent event) {
          System.out.println("My Very Own Private Button Handler");
     }
}
于 2013-04-29T05:19:29.543 に答える
1

もちろん。

private static class AddButtonClicked extends EventHandler<ActionEvent> {
     @Override
     public void handle(ActionEvent event) {
          System.out.println("My Very Own Private Button Handler");
     }
}
于 2012-10-08T23:20:52.010 に答える