首页 文章

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

提问于
浏览
0

之前我的项目曾经是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 回答

  • 6

    使用Java 9版本将FXML( @FXML annotation,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.graphicsjava.base ,因此您无需包含这些内容 . javafx.fxml 直接取决于 javafx.base .

相关问题