@FXML批注和FXMLLoader类未解析为Java 11和JavaFX 11中的类型

时间:2018-10-02 07:00:56

标签: java javafx openjfx javafx-11

我的项目以前使用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

我是否需要添加一些其他/其他依赖项来解决此问题?

1 个答案:

答案 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.graphicsjava.base,因此您不需要包括它们。而javafx.fxml直接依赖于javafx.base