Связанный вопрос, опубликованный @slaw, решил мою проблему.
Чтобы разобраться в этом: Вложенные пользовательские узлы SceneBuilder
Так что, в принципе, если вы поражены этой темой, клонируйте SceneBuilder и начните отладку, проверив в проекте комплекта класс JarExplorer
.
При добавлении вывода трассировки стека через x.printStacktrace()
вы видите причину, по которой ваш проект не был загружен.
Так что в моем случае, как было упомянуто в сообщении: вам нужно установить правильный загрузчик классов. (и пропущенный слеш. Прокляните вас java ресурсы.)
Вот так выглядит мой конструктор:
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/SelectableList.fxml"));
fxmlLoader.setRoot(this);
fxmlLoader.setController(this);
fxmlLoader.setClassLoader(getClass().getClassLoader());
try {
fxmlLoader.load();
} catch (IOException exception) {
throw new RuntimeException(exception);
}
И после этого все заработало.
Если у кого-то есть проблемы с запуском проекта scenebuilder:
Используйте IntelliJ. Вы можете нажать на build.gradle и запустить задачу «Выполнить». Поскольку для Java 11 требуются модули, загруженные в командной строке, вы можете использовать этот метод. В противном случае вы получите сообщение об ошибке «Компоненты JavaFX» отсутствуют.
Надеюсь, это поможет.