У меня есть два разных файла F XML, main.fxml
и member_add.fxml
. Они оба прекрасно работают, когда я пробую их по отдельности, но когда из моего основного контроллера я пытаюсь вызвать member_add.fxml
IntelliJ выдает мне сообщение об ошибке в консоли:
Ошибка консоли
null/member_add.css
null/member_add.css
Table BOOK already exists.
Table MEMBER already exists.
Mar 04, 2020 5:46:40 PM com.sun.javafx.css.StyleManager loadStylesheetUnPrivileged
WARNING: Resource "member_add.css" not found.
Как я звоню member_add.fxml
:
//loc is the location of my file, the show method display my fxml but without css
void loadWindow(String loc, String title) {
try {
FXMLLoader loader = new FXMLLoader();
FileInputStream fin = new FileInputStream(new File(loc));
Parent parent = loader.load(fin); // <<-- ERROR COME FROM HERE
Stage stage = new Stage(StageStyle.DECORATED);
stage.setTitle(title);
stage.setScene(new Scene(parent));
stage.show();
} catch (IOException e) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, e);
}
}
Я не знаю, как работает метод load
из класса FXMLLoader
, но он добавляет null\
к пути для css, как мы видим на двух первых строчках консоли. И вот мы приходим к окончательному сообщению об ошибке «Resource» member_add. css «not found».
Я использую IntelliJ и Maven, я добавил !?*.fxml;!?*.css
в шаблон ресурса intellij и добавил следующее теги в пом. xml
<resources>
<resource>
<directory>
src/main/java/library/assistant/ui
</directory>
<includes>
<include>**/*.fxml</include>
<include>**/*.css</include>
</includes>
</resource>
</resources>
Как я уже сказал, когда я пытаюсь построить специально для member_add.fxml
, css найден. это не удается, когда я пытаюсь связать их.
Так что же не так?