@FXML注释和FXMLLoader类未解析为Java 11和JavaFX 11中的类型[英] @FXML annotation and FXMLLoader class not resolved to a type in Java 11 and JavaFX 11

问题描述

之前我的项目曾经使用 Java 8,但现在我使用 Java 11 和 JavaFX 11,现在 JavaFX 从 Java 11 开始与 Java 分离.我没有下载 JavaFX SDK,但在 pom.xml 中添加了以下依赖项.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.

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

推荐答案

FXML (@FXMLannotation, 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.

本文地址:https://www.itbaoku.cn/post/978606.html