首页  >  文章  >  Java  >  如何在基于 Maven 的 JavaFX 项目中访问 FXML 文件?

如何在基于 Maven 的 JavaFX 项目中访问 FXML 文件?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-19 08:58:03675浏览

How Do I Access FXML Files in Maven-Based JavaFX Projects?

访问 Maven JavaFX 项目中的 FXML 文件

在 JavaFX 应用程序中,从控制器引用 FXML 文件至关重要。使用 Maven 构建项目时,考虑 FXML 文件在资源文件夹中的位置非常重要。

Java 中的资源查找

在深入研究特定解决方案之前值得注意的是,FXML 文件查找是 Java 中的一种通用资源查找任务。 FXMLLoader 将资源位置作为输入,因此查找本身会在您的调用应用程序代码中进行。

FXML 位置解析选项

有多种方法可以构建您的FXML 文件并解析其位置:

  1. 放置 FXML src/main/resources 目录中的文件:

    loader.setLocation(getClass().getResource("/main.fxml"));
  2. 将 FXML 文件放在 src/main/resources/fxml 中目录:

    loader.setLocation(getClass().getResource("/fxml/main.fxml"));
  3. 将 FXML 文件放入相应的资源目录中:

    loader.setLocation(getClass().getResource("main.fxml"));

    这假设类执行FXML 加载位于相应的 Java 源中

FXMLLoader 使用建议

为了获得最佳结果,建议:

  • 通过 new 实例化 FXMLLoader FXMLLoader() 而不是静态方法。
  • 在实例化的 FXMLLoader 上设置位置并使用 load()。
  • 使用 getClass().getResource() 基于类派生位置。

IDE 和构建设置

确保您的 IDE 或构建工具将 FXML 文件从资源文件夹复制到构建输出目录。

Java Jigsaw 模块化应用程序

对于使用 Java Jigsaw 构建的模块化应用程序,使用该类来获取资源直接代替类加载器:

ComboBoxStyling.class
    .getResource("/css/styleclass.css"); 

通过遵循这些准则,您可以在 JavaFX 中有效地引用 FXML 文件Maven 项目控制器。

以上是如何在基于 Maven 的 JavaFX 项目中访问 FXML 文件?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn