如何将 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
    }
}
  1. 简答:
public Class1(Class2 class2){
this.class2 = class2;
}

调用构造函数:new Class1(new Class2());事件触发时会自动调用handle方法。

  1. 长答案,使用匿名 类 更适合按钮事件处理,因此了解匿名 类 和 lambda 表达式,很好的学习。