2

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");

    }
}

これを達成する他の方法はありますか?助けてください。前もって感謝します。

4

1 に答える 1

6

これを試して

public class DataChangeHandler implements EventHandler<Event>{
    @Override
    public void handle(Event event) {
        System.out.println("My Very Own Private Handler For All Kind Of Events");
    }
}
于 2012-10-10T07:36:11.380 に答える