Я пытаюсь загрузить файл 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;
}
Я пытаюсь загрузить файл MainWindow.fxml в App.java следующим образом:
getClass().getResource("/MainWindow.fxml");
Я пытался использовать имена MainWindow.fxml
и /MainWindow.fxml
, однако оба возвращают ноль. Как видно из структуры каталогов, содержимое ресурсов также копируется, поэтому они должны быть доступны во время выполнения. Каталог ресурсов помечен как таковой в 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'
}