首页 > Java > java教程 > 正文

如何引用存储在 `src/main/resources` 文件夹中的 JavaFX FXML 文件?

Mary-Kate Olsen
发布: 2024-11-21 00:41:12
原创
758 人浏览过

How do I reference JavaFX FXML files stored in the `src/main/resources` folder?

引用资源文件夹中的 JavaFX FXML 文件

构建 JavaFX GUI 应用程序时,您经常需要访问存储在 src/main/resources 文件夹中的 FXML 文件。为此,您可以使用 FXMLLoader.load() 方法,正如您在问题中提到的。

通用资源查找信息

JavaFX FXML 文件查找是通用资源查找过程的一部分在爪哇。资源位置作为输入传递给 FXMLLoader。因此,资源查找是应用程序代码的一部分,而不是 FXMLLoader 本身。

有关 JavaFX 应用程序资源查找的详细信息,请参阅:

  • [确定正确路径适用于 FXML、CSS、图像和其他资源](https://stackoverflow.com/a/33169100/17772320)
  • [JavaFX 中资源文件的放置位置](https://edencoding.com/where-to-put-resource-files -in-javafx/)

示例用法

FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getResource("/main.fxml"));
Parent content = loader.load();
登录后复制

位置解析选项

解析 FXML 文件位置的方法有多种:

  1. 将所有 FXML 文件放入 src/主要/资源目录:

    • loader.setLocation(getClass().getResource("/main.fxml"));
  2. 创建专用的 src/ FXML 的 main/resources/fxml 目录files:

    • loader.setLocation(getClass().getResource("/fxml/main.fxml"));
  3. 放置 FXML 文件在镜像 Java 源的相应资源目录中层次结构:

    • src/main/resources/com/mycompany/myapp:
    • loader.setLocation(getClass().getResource("main.fxml"));

FXMLLoader 用法建议

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

IDE 和构建设置

确保您的 IDE 或构建工具将 FXML 文件从资源目录复制到构建输出目录。有关 Intellij 设置,请参阅:

  • [如何在 Intellij 中将普通 Java 项目转换为 JavaFX 项目](https://dzone.com/articles/how-to-convert-a-normal -java-project-into-a-javafx-1)

Java Jigsaw 模块化应用程序

在 Java 模块化应用程序中,请谨慎使用类加载器进行资源查找。相反,直接从类访问资源:

  • 正确:ComboBoxStyling.class.getResource("/css/styleclass.css");
  • 不正确:ComboBoxStyling.class.getClassLoader( ).getResource("/css/styleclass.css");

以上是如何引用存储在 `src/main/resources` 文件夹中的 JavaFX FXML 文件?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板