我打算创建一个EventHandler类,它将处理我的JavaFX类中所有控件的所有类型的事件.
例如,我添加了我的自定义事件处理程序类,以下面的方式处理Action事件,它只是工作正常:
userNameText.addEventHandler(ActionEvent.ACTION, new DataChangeHandler());
cmbBox.addEventHandler(ActionEvent.ACTION, new DataChangeHandler());
btn.addEventHandler(ActionEvent.ACTION, new DataChangeHandler());
Run Code Online (Sandbox Code Playgroud)
这是我的custome事件处理程序类代码:
public class DataChangeHandler implements EventHandler<ActionEvent> {
public void handle(ActionEvent event) {
System.out.println("My Very Own Private Button Handler");
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试将其中一个addEventHandler更改为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");
}
}
Run Code Online (Sandbox Code Playgroud)
有没有其他方法来实现这一目标?请帮忙.提前致谢.
试试这个
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");
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9265 次 |
| 最近记录: |