2016-07-14 12 views
-1

javafxを使用して自分のプログラムのGUIを作成し、カスタムボタンComponentButtonを作成しました。これはjavafx.scene.control.Buttonまで拡張されています。これまでの唯一の違いは、ボタンに追加のメンバ変数があることです。ボタンのすべてのインスタンスにアクションリスナーをアタッチさせたい場合、リスナーはメンバー変数を使用します。その結果、ボタンのクラス定義内でアクションリスナーを定義できるようにしたいと考えています。現在のところ、私はこの作業を行うことができませんでしたが、ボタンのインスタンスごとにアクションリスナーを作成することができますが、たくさんあるため、むしろそれを回避したいと思います。カスタムボタンクラスでアクションリスナーを定義する

事前に感謝の意を表します。

編集:私は(ボタンを使用した)ビューがEventHandler<ActionEvent>を実装することに決め

それに答えました。これは、私は、これは、私は、私は(ボタンを使用した)ビューがEventHandler<ActionEvent>を実装することに決めアクション

+1

は「私はボタンのインスタンスごとにアクションリスナーを作ることができるアクションを実行するbutton.setOnAction(this);を呼び出すことができることを意味し

@Override public void handle(final ActionEvent event) { //Do stuff } 

メソッドを追加することができることが、あるだろうと意味しました彼らの多くはむしろそれを避けるだろう "。なぜそれを避けたいですか?そして、「まだ、私はこの仕事をすることができませんでした」は、問題の声明ではありません。何が実際に間違っていますか? –

+0

確かに 'this.setOnAction(this);'ではなく、 'button.setOnAction(this);'? –

+0

UIクラスで、必要に応じてボタンを作成するループを使用しました –

答えて

0

を実行するためにbutton.setOnAction(this);を呼び出すことができることを意味し

@Override 
public void handle(final ActionEvent event) 
{ 
    //Do stuff 
} 

をメソッドを追加することができることを意味しました。これは、私は、これは、私は

+1

'button.setOnAction(this :: handle);'、 'EventHandler 'インターフェイスを実装していない*オーバーライド」)。これが望ましい理由は、他のリスナーに対して同じことを行う必要がある場合、元のソリューションでは、 'EventHandler 'と 'EventHandler 'の両方を実装することはできません。この方法で、メソッドの名前を好きなものに変更することもできます。 –

関連する問題