Хитрость заключается в том, чтобы начать URL с "@" и вызвать FXMLLoader.setLocation () .
- относительные URL:
- @one24.png:
- @image/two24.png
- @ .. / three24.png
- абсолютные URL:
- @ / four24.png
- @/image/five24.png
Обратите внимание, что я реализовал служебный класс: FXMLLoaders
Если вы придерживаетесь следующих соглашений об именах:
- MyComponent.java
- MyComponent.fxml (тот же пакет, что и MyComponent.java)
- MyComponent.Свойства (тот же пакет, что и у MyComponent.java)
. Вы можете использовать следующий код:
Для FX: корневые файлы FXML:
public MyComponent() {
FXMLLoaders.loadRoot(this);
}
В противном случае:
Parent root = FXMLLoaders.load(FxmlSampleApplication.class);
Библиотека доступна в Maven Central:
<dependency>
<groupId>org.drombler.commons</groupId>
<artifactId>drombler-commons-fx-core</artifactId>
<version>0.13</version>
</dependency>
Вы можете найти полный образец, который загружает изображения на GitHub .
Я также написал сообщение в блоге aboно этот служебный класс и соглашения об именах.