У меня есть класс Launcher, который я хочу использовать для открытия нового окна.Надувание FXML из подкаталога
из основных в Launcher, я звоню:
ChatList chatList = new ChatList(communicator);
Конструктор ChatList вызывает метод showChatList()
, где я пытаюсь надуть FXML документ:
private void showChatList() {
try {
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("fxml/ChatList.fxml"));
Parent root = (Parent) fxmlLoader.load();
Stage stage = new Stage();
stage.setScene(new Scene(root));
stage.show();
} catch(Exception e) {
e.printStackTrace();
}
}
Однако я получая java.lang.IllegalStateException: Location is not set.
, где я звоню fxmlLoader.load()
. Моя файловая структура проекта выглядит следующим образом:
Я попытался положить в абсолютный путь к файлу в файле FXML, но по-прежнему не везло.
Может ли кто-нибудь помочь мне понять, что общего заключается в том, что за раздуванием FXMLs в JavaFX (с несколькими этапами) возникает общий принцип, или укажите мне хороший ресурс, с которым они столкнулись.
Cheers.
Я не уверен, что это помогает, но мне нужно сделать новый FXMLLoader (getClass(). GetClassLoader(). GetResource (// path); 'Стоит попробовать. –
Итак, вы говорите, что я делаю это : 'FXMLLoader fxmlLoader = новый FXMLLoader (getClass(). GetResour ce ("// fxml/ChatList.fxml")); '? Я все еще не работаю. –