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

标签 java javafx openjfx javafx-11

之前我的项目曾经在 Java 8 上运行,但现在我正在使用 Java 11 和 JavaFX 11,现在 JavaFX 自 Java 11 以来已与 Java 分离。我没有下载 JavaFX SDK,但在 pom.xml 中添加了以下依赖项。 xml 用于获取所需的模块和 jar 文件,这些模块和 jar 文件在早期版本中曾经是 Java 本身的一部分。

       <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-controls</artifactId>
            <version>11</version>
        </dependency>

但我在 @FXML 注释和 FXMLLoader 类上遇到编译错误 cannot be resolved to a type

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

最佳答案

随着 Java 9 的发布,FXML(@FXML注释、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

关于java - @FXML 注释和 FXMLLoader 类未解析为 Java 11 和 JavaFX 11 中的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52603396/

相关文章:

Java DOM : transforming a node to a root element

java - Log4j 2 性能 : is single-threaded Console logging faster in Logback than Log4j 2?

java - hibernate 中的部分架构导出

java - 如何在java中禁用按钮3秒

java - FXML 文件中的 For 循环 ||如何将数据从 Controller 发送到 fxml 文件?

JavaFX - 如何使用 UI Controller 事件暂停后台服务?

java - 无法使用 JavaFX 使 JavaFX 应用程序在 Gluons "Getting started"页面之后工作

windows - 将 WMI 与 java 一起使用的推荐库/howtos?

带有java FX的Spring数据jpa

java - 如何安装 OpenJFX 11