我计划创建一个单一的 EventHandler 类,它将处理我的 JavaFX 类中所有控件的所有类型的事件。
例如,我添加了我的自定义事件处理程序类以按以下方式处理 Action 事件,它工作正常:
userNameText.addEventHandler(ActionEvent.ACTION, new DataChangeHandler());
cmbBox.addEventHandler(ActionEvent.ACTION, new DataChangeHandler());
btn.addEventHandler(ActionEvent.ACTION, new DataChangeHandler());
这是我的客户事件处理程序类代码:
public class DataChangeHandler implements EventHandler<ActionEvent> {
public void handle(ActionEvent event) {
System.out.println("My Very Own Private Button Handler");
}
}
但是当我尝试将其中一个 addEventHandlers 更改为 MouseEvent 并按以下方式修改主 EventHandler 类时,它显示错误“The Interface eventhandler cannot be implemented more than once with different arguements”:
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");
}
}
还有其他方法可以实现吗?请帮忙。提前致谢。
最佳答案
试试这个
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");
}
}
关于javafx-2 - 如何在 JavaFX 中实现可以处理任何 EventType 的真正自定义事件处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12810185/