JavaFX-setOnAction不适用

JavaFX-setOnAction不适用,java,javafx,Java,Javafx,我正在尝试学习JavaFX,我已经编写了如下所示的代码,但是这行代码似乎有问题: btn.setOnAction(new EventHandler<ActionEvent>() btn.setOnAction(新的EventHandler() 其中,它在setOnAction下面加下划线,并打印此错误: The method setOnAction(EventHandler<ActionEvent>) in the type ButtonBase is not ap

我正在尝试学习JavaFX,我已经编写了如下所示的代码,但是这行代码似乎有问题:

btn.setOnAction(new EventHandler<ActionEvent>()
btn.setOnAction(新的EventHandler()
其中,它在setOnAction下面加下划线,并打印此错误:

 The method setOnAction(EventHandler<ActionEvent>) in the type ButtonBase is not applicable for the arguments (new EventHandler<ActionEvent>(){})
类型ButtonBase中的方法setOnAction(EventHandler)不适用于参数(new EventHandler(){})
导入java.awt.event.ActionEvent;
导入javafx.application.application;
导入javafx.event.EventHandler;
导入javafx.scene.scene;
导入javafx.scene.control.Button;
导入javafx.scene.layout.StackPane;
导入javafx.stage.stage;
公共类测试扩展了应用程序{
公共静态void main(字符串[]args){
发射(args);
}
@凌驾
公共无效开始(阶段primaryStage){
setTitle(“你好,世界!”);
按钮btn=新按钮();
btn.setText(“说‘你好,世界’”);
btn.setOnAction(新的EventHandler(){
@凌驾
公共无效句柄(ActionEvent事件){
System.out.println(“点击按钮”);
}
});
StackPane root=新的StackPane();
root.getChildren().add(btn);
原始阶段。设置场景(新场景(根,300250));
primaryStage.show();
}
}

我做错了什么?

您已经导入了awt事件侦听器,只需更改这行代码即可

import java.awt.event.ActionEvent;
用这个

import javafx.event.ActionEvent;
你也可以像这样使用lambda表达式

btn.setOnAction((event) -> {
  System.out.println("Button clicked");
});

你把Javafx和Swing.Replace混在一起了

import java.awt.event.ActionEvent;


您导入了
java.awt.event.ActionEvent
您需要将其更改为
javafx.event.ActionEvent
upvote并接受答案(如果您觉得有用)
import java.awt.event.ActionEvent;
import javafx.event.ActionEvent;