如何将 EventHandler 接口的实例设置为按钮的操作
How to set an instance of the EventHandler interface as the action for a button
我试图通过将 EventHandler<>
接口的实例传递给它的 setOnAction()
方法来设置按钮的操作,但是它不起作用。
Class 1:
public class Class1 {
private Class2 class2;
private Button buttonDelete = null;
private Button getButtonDelete() {
if (buttonDelete == null) {
buttonDelete = new Button("Delete");
buttonDelete.setOnAction(class2);
}
return buttonDelete;
}
}
Class 2:
public class Class2 implements EventHandler<ActionEvent> {
@Override
public void handle(ActionEvent event) {
// do something
}
}
- 简答:
public Class1(Class2 class2){
this.class2 = class2;
}
调用构造函数:new Class1(new Class2());
事件触发时会自动调用handle方法。
- 长答案,使用匿名 类 更适合按钮事件处理,因此了解匿名 类 和 lambda 表达式,很好的学习。
我试图通过将 EventHandler<>
接口的实例传递给它的 setOnAction()
方法来设置按钮的操作,但是它不起作用。
Class 1:
public class Class1 {
private Class2 class2;
private Button buttonDelete = null;
private Button getButtonDelete() {
if (buttonDelete == null) {
buttonDelete = new Button("Delete");
buttonDelete.setOnAction(class2);
}
return buttonDelete;
}
}
Class 2:
public class Class2 implements EventHandler<ActionEvent> {
@Override
public void handle(ActionEvent event) {
// do something
}
}
- 简答:
public Class1(Class2 class2){
this.class2 = class2;
}
调用构造函数:new Class1(new Class2());
事件触发时会自动调用handle方法。
- 长答案,使用匿名 类 更适合按钮事件处理,因此了解匿名 类 和 lambda 表达式,很好的学习。