JavaFX.Загрузчик FXML не может найти файл .fxml в проекте с модулями - PullRequest
0 голосов
/ 18 марта 2019

У меня есть проект с такой структурой:

enter image description here

Я пытаюсь загрузить sample.fxml из класса Main, используя этот код:

Parent root = FXMLLoader.load(Main.class.getResource("../../submodule/src/java/sample.fxml"));

но это не работает.Код файла sample.fxml:

<?import javafx.geometry.Insets?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>


<GridPane fx:controller="sample.Controller"
      xmlns:fx="http://javafx.com/fxml" alignment="center" hgap="10"    vgap="10">
</GridPane>

Проблема в том, что загрузчик FXML не может найти это местоположение.Как это решить?

1 Ответ

1 голос
/ 19 марта 2019

Я бы предложил следовать базовой структуре пакета maven, например:

src
 |--main
      |--java
      |--resource (put your FXML file into this folder)

Тогда должно работать следующее:

Parent root = FXMLLoader.load(getClass().getClassLoader().getResource("sample.fxml"));

Вы также можете поместить файл FXML в подпапку:

... = FXMLLoader.load(getClass().getClassLoader().getResource("layouts/sample.fxml"));
...