我正在尝试从资源目录加载FXML文件以显示JavaFX窗口,但是无论如何,我都找不到正确的方法来引用资源。
我的目录结构如下:
src
main
java
gui
App.java
module-info.java
resources
MainWindow.fxml
out
production
classes
// All compiled classes
resources
MainWindow.fxml
module-info.java
的内容如下:
module MyApp {
requires javafx.controls;
requires javafx.graphics;
requires javafx.fxml;
exports gui;
}
我试图像这样在App.java中加载MainWindow.fxml文件:
getClass().getResource("/MainWindow.fxml");
我尝试使用MainWindow.fxml
和/MainWindow.fxml
名称,但是都返回null。从目录结构可以看出,资源的内容也被复制,因此它们应该在运行时可用。资源目录在IntelliJ中被标记为此类。我正在使用Gradle进行依赖管理。
如何从资源目录加载文件?
这是我的build.gradle文件:
plugins {
id 'application'
id 'java'
id 'org.openjfx.javafxplugin' version '0.0.5'
}
group 'MyApp'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.11
javafx {
modules = [
'javafx.controls',
'javafx.graphics',
'javafx.fxml'
]
}
repositories {
mavenCentral()
}
dependencies {
testImplementation group: 'junit', name: 'junit', version: '4.12'
implementation 'org.openjfx.javafx-controls:11.0.1'
implementation 'org.openjfx.javafx-fxml:11.0.1'
implementation 'org.openjfx.javafx-graphics:11.0.1'
}