之前我的项目曾经在 Java 8 上运行,但现在我正在使用 Java 11 和 JavaFX 11,现在 JavaFX 自 Java 11 以来已与 Java 分离。我没有下载 JavaFX SDK,但在 pom.xml 中添加了以下依赖项。 xml 用于获取所需的模块和 jar 文件,这些模块和 jar 文件在早期版本中曾经是 Java 本身的一部分。
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>11</version>
</dependency>
但我在 @FXML
注释和 FXMLLoader
类上遇到编译错误 cannot be resolved to a type
。
我是否需要添加一些其他/额外的依赖项来解决这个问题?
最佳答案
随着 Java 9 的发布,FXML(@FXML
注释、FXMLLoader...)被移动到模块javafx.fxml
。
在 JavaFX 11 之前,无论何时调用与 JavaFX 相关的内容,您都可以在 SDK 中使用所有 javafx 模块。
但是现在你必须包括你需要的那些:
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>11</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>11</version>
</dependency>
请注意,javafx.controls
依赖于 javafx.graphics
和 java.base
,因此您不需要包含它们。而javafx.fxml
直接依赖于javafx.base
。
关于java - @FXML 注释和 FXMLLoader 类未解析为 Java 11 和 JavaFX 11 中的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52603396/