Метод GetResource работает не везде - PullRequest
0 голосов
/ 12 июля 2020

Привет, у меня проблема с методом getResource.

new Object() {}.getClass().getResource("layout/main.fxml")

Я пытаюсь получить файл ресурсов из каталога макета, но он всегда возвращает null, когда я Использую его в подкаталоге, расположенном в файле. (ResourcesUtils. java - см. Изображения)

Работает, только когда я использую его в главном каталоге. java которого нет в подкаталоге.

Мой проект каталог

Нужно ли указывать другой путь?

Спасибо за помощь

1 Ответ

0 голосов
/ 12 июля 2020

layout/main.fxml - это «относительный путь». Чтобы получить конкретный путь, система добавляет путь к пакету класса, для которого вы вызываете getResource, который будет любым пакетом, в котором находится код, поскольку вы вызываете getResource в анонимном локальном классе.

Абсолютный путь будет работать независимо от того, где находится код:

getResource("/fr/etna/penelope/layout/main.fxml")

Другим решением может быть вызов getResource для указанного c класса вместо анонимного класса, поскольку при этом будет использоваться фиксированный имя пакета. Например:

Main.class.getResource("layout/main.fxml")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...