构建 JavaFX 应用程序的问题

Problems building a JavaFX application

我正在尝试升级一个非常旧的 JavaFX 应用程序,该应用程序在 [Main][1] 中使用,查看包中的一组控件 javafx.scene 这样作为 javafx.scene.SceneBuilderjavafx.scene.control.TextField。 我在 pom.xml 中添加了以下依赖项:

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

但是,当我尝试构建项目时,找不到 javafx.scene 包中的所有 类。

是否要为此包添加单独的依赖项? 根据产品文档,仅提及上述内容。 有什么帮助吗? 谢谢 [1]: https://github.com/fmarchioni/jboss-as-quickstart/blob/master/kitchensink-javafx/src/main/java/org/kitchensinkfx/view/Main.java

参见getting started instructions at openjfx.io

模块化

当JavaFX在Java11中与jdk模块化分离时,之前依赖JavaFX的代码在jdk停止工作。您需要向 javac 和 java 进程提供 JavaFX 模块以及如何使用它们的说明。

这个class:

javafx.scene.control.TextField

现代 JavaFX 发行版中确实存在。但是,要使用它,您必须将

requires javafx.controls;

在您添加的 module-info.java 文件中。

通过命令行开关添加 javafx.controls 模块。

无论哪种方式,适当的 JavaFX 模块(javafx.controls、javafx.graphics 等)也需要在您的模块路径上。

Java 模块系统很复杂,其使用因环境而异。为了更好地理解,请研究 tutorial on the module system 和 openjfx.io 文档。

建设者

生成器 classes 已被弃用并删除。

您需要更改代码以在构造的实例上使用构造函数和相关方法调用。

这个class:

javafx.scene.SceneBuilder

在现代 JavaFX 发行版中不再存在,必须按上述方法替换它的用法。

建议的方法

如果使用 Idea,我建议遵循以下步骤:

  • .