之前我的项目曾经是Java 8,但现在我正在使用Java 11和JavaFX 11,现在JavaFX已经从Java 11开始与Java分离了 . 我没有下载JavaFX SDK,但在pom.xml中添加了以下依赖项以获取必需的模块和jar文件,它们在早期版本中曾经是Java本身的一部分 .
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>11</version>
</dependency>
但是我在 @FXML
注释和 FXMLLoader
类上遇到编译错误 can not be resolved to a type
.
我是否需要添加一些其他/额外的依赖项来解决此问题?
1 回答
使用Java 9版本将FXML(
@FXML
annotation,FXMLLoader ...)移动到模块javafx.fxml
.在JavaFX 11之前,无论何时调用与JavaFX相关的内容,您都可以在SDK中使用所有javafx模块 .
但现在你必须包括你需要的那些:
请注意,
javafx.controls
取决于javafx.graphics
和java.base
,因此您无需包含这些内容 .javafx.fxml
直接取决于javafx.base
.