引用资源文件夹中的 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 文件位置的方法有多种:
-
将所有 FXML 文件放入 src/主要/资源目录:
- loader.setLocation(getClass().getResource("/main.fxml"));
-
创建专用的 src/ FXML 的 main/resources/fxml 目录files:
- loader.setLocation(getClass().getResource("/fxml/main.fxml"));
-
放置 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中文网其他相关文章!