Curso de JavaFX
Layouts
En esta lección aprenderás a estructurar tu interfaz gráfica usando diferentes layouts en JavaFX. Los layouts son contenedores que organizan los elementos visuales (botones, etiquetas, campos de texto, etc.) de tu aplicación. Exploraremos los principales tipos de layouts y cómo añadir elementos a ellos. ¡Manos a la obra!
StackPane
El StackPane permite superponer los objetos uno encima de otro. Es útil para escenarios donde los elementos deben estar centrados o superpuestos.
StackPane root = new StackPane();

En el ejemplo de la imagen, el botón se encuentra centrado en el contenedor StackPane. Este layout distribuye automáticamente los elementos en capas.
GridPane
El GridPane organiza los elementos en una cuadrícula de filas y columnas. Es ideal para interfaces más estructuradas.
GridPane root = new GridPane();
// El primer parámetro es el objeto que estamos añadiendo a la regilla
// El segundo parámetro es la columna que ocupará dicho objeto
// El tercer parámetro es la fila que ocupará dicho objeto
root.add(btn1, 1, 0);
Detalles:
add(Node, col, row): Añade un nodo a la posición deseada.- Para ajustar el tamaño de las celdas:
GridPane.setVgrow(btn2, Priority.ALWAYS);
GridPane.setHgrow(btn1, Priority.ALWAYS);
btn.setMaxWidth(Double.MAX_VALUE); btn.setMaxHeight(Double.MAX_VALUE);
Esto asegura que las celdas ocupen todo el espacio disponible.
VBox
El VBox distribuye los elementos de forma vertical. Es útil para apilar componentes en una columna.

Si quieres que los elementos ocupen todo el espacio disponible:
VBox.setVgrow(btn1, Priority.ALWAYS);
btn1.setMaxHeight(Double.MAX_VALUE);
HBox
El HBox organiza los elementos de forma horizontal. Es perfecto para menús o distribuciones lineales.
HBox root = new HBox();

Para que el componente ocupe el 100% del layout que lo envuelve:
HBox.setHgrow(btn1, Priority.ALWAYS);
btn1.setMaxWidth(Double.MAX_VALUE);
Priority.Always hace que el layout se extienda siempre que sea posible al máximo tamaño.
Añadir elementos a un layout
Añadir varios elementos a un layout es sencillo. Puedes pasarlos como parámetros al constructor o añadirlos manualmente:
HBox root = new HBox(btn, btn2);
root.getChildren().add(btn);
Ejercicio layout
Crea un layout con dos botones que ocupen el 100% del ancho disponible. Usa un HBox y aplica las configuraciones aprendidas:
Resultado esperado: Los dos botones se distribuyen horizontalmente y ocupan la misma proporción del espacio disponible.
Resumen
- Los layouts te permiten organizar elementos en tu interfaz.
StackPanees ideal para superposiciones,VBoxyHBoxpara distribuciones lineales, yGridPanepara estructuras en cuadrícula.- Puedes controlar el tamaño y crecimiento de los elementos para adaptarlos a diferentes resoluciones.
En la próxima lección, aprenderás a aplicar estilos en línea y personalizar el diseño visual de tu aplicación. ¡Continúa avanzando! 🚀
