Включение файла FXML, который включает другой файл FXML - PullRequest
0 голосов
/ 30 апреля 2019

У меня есть этот файл MainView.fxml:

<?xml version="1.0" encoding="UTF-8"?>

  <?import javafx.scene.layout.VBox?>

  <VBox prefHeight="600.0" prefWidth="900.0"xmlns="http://javafx.com/javafx/8.0.171"xmlns:fx="http://javafx.com/fxml/1">
    <children>
     <fx:include source="./components/header/MainMenu.fxml" />
     <fx:include source="./BodyContent.fxml" />
     <fx:include source="./components/footer/StatusBar.fxml" />
    </children>
  </VBox>

Содержимое BodyContent.fxml:

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.layout.VBox?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.control.ChoiceBox?>
<?import javafx.geometry.Insets?>

<VBox>
   <children>
      <fx:include source="./project-category-picker- 
pane/ProjectCategoryPickerPane.fxml" />

   </children>
</VBox>

Содержимое ProjectCategoryPickerPane.fxml:

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.layout.HBox?>
<?import javafx.scene.control.ChoiceBox?>
<?import javafx.geometry.Insets?>

<HBox id="HBox" alignment="CENTER_LEFT" spacing="5.0">
  <children>
              <ChoiceBox prefWidth="450.0" />
              <ChoiceBox disable="true" prefWidth="450.0" />
              <ChoiceBox disable="true" layoutX="13.0" layoutY="13.0" 
 prefWidth="450.0" />
           </children>
           <padding>
              <Insets bottom="3.0" left="3.0" right="3.0" top="3.0" />
           </padding>
        </HBox>

Метод загрузки в загрузчике из контроллера MainView.fxml возвращает ноль, когда я делаю вышеописанное, но он работает, когда я напрямую внедряю содержимое ProjectCategoryPickerPane.fxml в BodyContent.fxml

Есть ли что-то, что должно бытьсделано в классе контроллера MainView для поддержки вложенного <fx:include />?

...