Esta página fue traducida automáticamente del portugués y puede contener errores. La versión en portugués es la canónica.
VerticalLayout
Apila los componentes hijos de arriba hacia abajo (una fila por hijo), cada uno ocupando el ancho del contenedor (menos el margen). Es el layout más usado — la columna vertebral de la mayoría de las pantallas.
🟢 · Paquete:
dev.crossfly.ui.layout· Extiende:Layout
Cuándo usar
- Pantallas en columna: encabezado + contenido + pie.
- Cualquier lista de secciones apiladas.
Cuándo NO usar
- Elementos lado a lado → HorizontalLayout.
- Cuadrícula etiqueta/campo → GridLayout.
add(...) — firma y semántica
public VerticalLayout add(float altura, Component c)
El parámetro altura controla la fila:
| Valor | Significado |
|---|---|
LAY_AUTO (0f) |
altura natural del componente (getAutoHeight()) — escala con la fuente |
LAY_FILL (-1f) |
rellena el sobrante (usa una fila FILL por layout) |
> 0 (ex. 0.25f) |
fracción de la altura del contenedor (25%) — no son píxeles |
Constructores
| Constructor | Descripción |
|---|---|
new VerticalLayout() |
alineación horizontal centrada de cada fila |
new VerticalLayout(Position h, Position v) |
h = alineación horizontal de las filas (START/CENTER/END) |
Ejemplo completo (copiar, pegar y ejecutar)
package com.exemplo;
import dev.crossfly.ui.*;
import dev.crossfly.ui.layout.*;
/** Pantalla principal ejecutable. Apunta el launcher (classname) y corre: gradlew :lwjgl3:run */
public class MainWindow extends Window
{
@Override
public void onShow() throws Exception
{
super.onShow();
setLayout(new VerticalLayout(Position.START, Position.START));
Component lista = new Component(); // contenido elástico (placeholder)
lista.setLayout(new VerticalLayout(Position.START, Position.START));
for (int i = 1; i <= 5; i++)
lista.add(LAY_AUTO, new Label("Produto " + i));
add(LAY_AUTO, new Label("Produtos")); // cabecera — altura natural
add(LAY_FILL, lista); // contenido — absorbe todo el sobrante
add(LAY_AUTO, new Button("Adicionar")); // pie — altura natural
}
}
Los fragmentos siguientes muestran solo el núcleo (lo que va dentro de
onShow()). Para ejecutar, colócalos en el esqueletoMainWindowanterior.
Uso básico
setLayout(new VerticalLayout(Position.START, Position.START));
add(LAY_AUTO, new Label("Produtos")); // cabecera — altura natural
add(LAY_FILL, lista); // contenido — absorbe todo el sobrante
add(LAY_AUTO, new Button("Adicionar")); // pie — altura natural
Cómo distribuye
┌──────────────────────────┐
│ Label (LAY_AUTO) │ ← altura natural
├──────────────────────────┤
│ │
│ lista (LAY_FILL) │ ← preenche o que sobrou
│ │
├──────────────────────────┤
│ Button (LAY_AUTO) │ ← altura natural
└──────────────────────────┘
Buenas prácticas
- 1 fila
LAY_FILL+ las demásLAY_AUTOes el arreglo más robusto (no se rompe si la fuente crece o el teclado se abre). - Espaciar filas: inserta
add(LAY_AUTO, Gap.ofFont(0.25f))como espaciador (elGapcuenta como una fila de media altura de fuente).
Errores comunes
- Dar fracción a todas las filas (
add(0.2f, …)en todo) — frágil; prefiere auto + 1 fill. - Creer que
add(0.7f, x)es 70% del sobrante — es 70% de la altura total del contenedor. - Más de una fila
LAY_FILL— solo la última prevalece.
Ver también
¿Te resultó útil esta página?¡Gracias por tu opinión!