我的项目以前使用Java 8,但是现在我将Java 11与JavaFX 11一起使用,现在JavaFX从Java 11开始就与Java分离了。我没有下载JavaFX SDK,但在pom中添加了以下依赖项。 xml,用于获取所需的模块和jar文件,这些模块和jar文件在早期版本中曾经是Java本身的一部分。
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>11</version>
</dependency>
但是我在can not be resolved to a type
注释和@FXML
类上遇到了编译错误FXMLLoader
。
我是否需要添加一些其他/其他依赖项来解决此问题?
答案 0 :(得分:6)
FXML(@FXML
注释,FXMLLoader ...)已随Java 9发行版移至模块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
。