Grouping together JavaFX FXML Objects
Solution 1:
You could use fx:define
and fx:reference
to place the elements in a List
and in the scene graph and inject the list to the controller:
<AnchorPane id="AnchorPane" fx:id="dashboard" prefHeight="400.0" prefWidth="600.0" stylesheets="@css/dashboard.css" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.hassanalthaf.telemart.viewmodels.DashboardViewModel">
<fx:define>
<!-- create panes and store them in a list -->
<ArrayList fx:id="panes">
<AnchorPane fx:id="home" layoutY="29.0" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="371.0" prefWidth="600.0" />
<AnchorPane fx:id="about" layoutY="29.0" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="371.0" prefWidth="600.0" />
<AnchorPane fx:id="users" layoutY="29.0" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="371.0" prefWidth="600.0" />
</ArrayList>
</fx:define>
<children>
<MenuBar maxWidth="600.0" minWidth="600.0" prefWidth="600.0">
<menus>
<Menu mnemonicParsing="false" text="File">
<items>
<MenuItem mnemonicParsing="false" text="Close" />
</items>
</Menu>
<Menu mnemonicParsing="false" text="Help">
<items>
<MenuItem mnemonicParsing="false" text="About" />
</items>
</Menu>
</menus>
</MenuBar>
<!-- add panes in the list to scene graph -->
<fx:reference source="home"/>
<fx:reference source="about"/>
<fx:reference source="users"/>
</children>
</AnchorPane>
Controller
@FXML
private List<AnchorPane> panes;