2
我打算创建一个EventHandler类,它将处理我的JavaFX类中所有控件的所有类型的事件。如何实现一个可以处理JavaFX中任何EventType的真正自定义事件处理程序?
例如,我将自己的自定义事件处理类来处理操作事件通过以下方式,它只是正常工作:
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");
}
}
但是,当我尝试将其中一个addEventHandlers更改为MouseEvent并通过以下方式修改主要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");
}
}
有没有其他办法可以达到这个目的?请帮忙。提前致谢。
它完美。谢谢Uluk。 – user1730159