Solución:
Si configura el static
métodos setTopAnchor( child, value )
, setBottomAnchor( ... )
, setLeftAnchor( ... )
, setRightAnchor( ... )
de clase AnchorPane
para 0.0, el niño Node
se estirará al máximo del padre AnchorPane
.
Enlace de documentación: AnchorPane
editar: en el enlace de documentación también puede ver cómo puede establecer estos valores en su código java.
Ejemplo de FXML:
<AnchorPane fx:id="mainContent" ...>
<StackPane fx:id="subPane" AnchorPane.topAnchor="0.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" ></StackPane>
</AnchorPane>
Si tienes un Region
, el cual es un subclase de Node
eso incluye Axis
, Chart
, Control
, y Pane
(esto probablemente incluye cualquier cosa que desee cargar), puede unir el tamaño del niño al espacio en el padre similar a como lo hicieron aquí. Ahora, cualquier ajuste futuro del tamaño de los padres se verá reflejado en el niño.
Region n = (Region)loader.load();
mainContent.getChildren().add(n);
n.prefWidthProperty().bind(mainContent.widthProperty());
n.prefHeightProperty().bind(mainContent.heightProperty());
Con el vistazo a la estructura de su interfaz, creo que es mejor que use BorderPane como su contenedor principal con esta sugerencia, no use AnchorPane directamente dentro del contenedor BorderPane, aquí está mi sugerencia que haga:
-> BorderPane-Top = “su menú”
-> BorderPane-Center = otro contenedor (podría ser SplitPane, otro BorderPane, etc. pero no AnchorPane, supongo, pero puedes intentarlo si quieres)
-> BorderPane-Bottom = otro contenedor (podría ser hbox con botones o etiqueta para información o notificaciones, etc.)