首页 >Java >java教程 >如何引用JavaFX资源文件夹中的FXML文件?

如何引用JavaFX资源文件夹中的FXML文件?

Barbara Streisand
Barbara Streisand原创
2024-11-21 04:32:11918浏览

How to Reference FXML Files in JavaFX Resource Folder?

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

创建 JavaFX GUI 应用程序时,可能需要从控制器内引用 FXML 文件。为了有效地做到这一点,考虑以下几点很重要:

通用资源查找:

引用 FXML 文件是 Java 中通用资源查找过程的一部分。当调用程序将资源位置传递给 FXMLLoader 时,资源查找本身发生在应用程序代码中,而不是 FXMLLoader 中。

示例资源查找:

加载使用资源查找的 FXML 文件,请考虑以下事项:

FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getResource("/main.fxml"));
Parent content = loader.load();

资源位置解析:

解析资源位置有三个选项:

  1. 将所有 FXML 文件放在 src/main/resources 目录中:
loader.setLocation(getClass().getResource("/main.fxml"));
  1. 将所有 FXML 文件放在 src/main/resources/fxml 目录中:
loader.setLocation(getClass().getResource("/fxml/main.fxml"));
  1. 将FXML文件放在相应的资源目录中:
loader.setLocation(getClass().getResource("main.fxml"));

在最后一种方法中,加载类应该位于相同的相对位置在 Java 源层次结构中作为 FXML 文件。

FXMLLoader 使用建议:

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

IDE 和构建设置:

确保在编译或 IDE 使用期间将 FXML 文件从资源目录复制到构建输出目录。

Java Jigsaw 模块化应用程序:

使用模块化应用程序时,应通过以下方式访问资源:

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

而不是:

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

以上是如何引用JavaFX资源文件夹中的FXML文件?的详细内容。更多信息请关注PHP中文网其他相关文章!

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