我有一个使用Gradle构建工具的JavaFX项目。什么是构造src/main/resources
文件夹的正确方法,以便我可以通过简单的代码行轻松访问*.fxml
和*.css
:
Parent root = FXMLLoader.load(getClass().getResource("xxx.fxml"));
我正在this tutorial中使用Gradle插件和JavaFX的build.gradle
文件,它具有一个简单的项目树,如下所示:
.
├── src.main
| ├── java
| | ├── org.openjfx
| | | ├── MainApp.java
| | └── └── FXMLController.java
| ├── resources
| | ├── org.openjfx
| | | ├── scene.fxml
└── └── └── └── styles.css
通过这种方式,MainApp.java
可以使用scene.fxml
加载getResource("scene.fxml")
。
但是,如果java
和resources
目录结构不匹配,请假设我的项目树是这样的,以便我可以将fxml
文件和css
文件分开:< / p>
.
├── src.main
| ├── java
| | ├── org.openjfx
| | | ├── anotherPackage
| | | | ├── MainApp.java
| | └── └── FXMLController.java
| ├── resources
| | ├── org.openjfx
| | | ├── layouts
| | | | ├── scene.fxml
| | | ├── styles
└── └── └── └── └──styles.css
现在MainApp.java
必须加载scene.fxml
到getResource("../layouts/scene.fxml")
我是Gradle和JavaFX的新手,我想知道什么是管理资源的正确方法,包括fxml,CSS和图片等。
ps。抱歉,如果我提出的问题不正确。
答案 0 :(得分:1)
iirc,资源目录结构应镜像包结构。看看https://www.eviltester.com/2017/12/resource-files-for-tests-java-maven.html