JavaFXクラスのすべてのコントロールのすべてのタイプのイベントを処理する単一のEventHandlerクラスを作成することを計画しています。
たとえば、次の方法でアクションイベントを処理するカスタムイベントハンドラークラスを追加しましたが、正常に機能します。
userNameText.addEventHandler(ActionEvent.ACTION, new DataChangeHandler());
cmbBox.addEventHandler(ActionEvent.ACTION, new DataChangeHandler());
btn.addEventHandler(ActionEvent.ACTION, new DataChangeHandler());
これが私のcustomeイベントハンドラークラスコードです:
public class DataChangeHandler implements EventHandler<ActionEvent> {
public void handle(ActionEvent event) {
System.out.println("My Very Own Private Button Handler");
}
}
しかし、addEventHandlerの1つをMouseEventに変更し、メインのEventHandlerクラスを次のように変更しようとすると、「インターフェイスeventhandlerは異なる引数で複数回実装できません」というエラーが表示されます。
userNameText.addEventHandler(ActionEvent.ACTION, new DataChangeHandler());
cmbBox.addEventHandler(MouseEvent.CLICKED, new DataChangeHandler());
btn.addEventHandler(ActionEvent.ACTION, new DataChangeHandler());
public class DataChangeHandler implements EventHandler<ActionEvent>, EventHandler<MouseEvent> {
public void handle(ActionEvent event) {
System.out.println("My Very Own Private Button Handler - ACTIONEVENT");
}
@Override
public void handle(MouseEvent arg0) {
System.out.println("My Very Own Private Button Handler - MOUSEEVENT");
}
}
これを達成する他の方法はありますか?助けてください。前もって感謝します。