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

Sat*_*uja 1 java javafx openjfx javafx-11

之前我的项目曾经是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>
Run Code Online (Sandbox Code Playgroud)

但是我can not be resolved to a type@FXML注释和FXMLLoader类上遇到了编译错误.

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

Jos*_*eda 11

FXML(@FXML注释,FXMLLoader ......)被移植到javafx.fxmlJava 9版本的模块中.

在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>
Run Code Online (Sandbox Code Playgroud)

请注意,javafx.controls取决于javafx.graphicsjava.base,因此您不需要包含这些.而且javafx.fxml直接依赖于javafx.base.