Saltar al contenido

JavaFX: FXML: ¿Cómo hacer que el niño extienda su tamaño para que se ajuste al panel principal?

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.)

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *