Esta página fue traducida automáticamente del portugués y puede contener errores. La versión en portugués es la canónica.
HorizontalLayout
Coloca los componentes hijos lado a lado (una columna por hijo), de izquierda a derecha. Es el par horizontal de VerticalLayout — ideal para barras y filas de controles.
🟢 · Paquete:
dev.crossfly.ui.layout· Extiende:Layout
Cuándo usar
- Barras de búsqueda/acción:
[ícone] [campo que estica] [botão]. - Cualquier fila de controles.
Cuándo NO usar
- Apilar verticalmente → VerticalLayout.
- Necesitas varias columnas con proporción por fila → GridLayout.
add(...) — firma y semántica
public HorizontalLayout add(float largura, Component c)
| Valor | Significado |
|---|---|
LAY_AUTO (0f) |
ancho natural del componente |
LAY_FILL (-1f) |
rellena el sobrante (usa una columna FILL) |
> 0 (ex. 0.5f) |
fracción del ancho del contenedor |
Constructores
| Constructor | Descripción |
|---|---|
new HorizontalLayout() |
elementos centrados verticalmente |
new HorizontalLayout(Position h, Position v) |
v = alineación vertical de cada columna |
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 barra = new Component();
barra.setLayout(new HorizontalLayout(Position.START, Position.CENTER));
barra.add(LAY_AUTO, new Label("🔎")); // ancho natural
barra.add(LAY_FILL, new TextField("Buscar...")); // estira
barra.add(LAY_AUTO, new Button("OK")); // ancho natural
add(LAY_AUTO, barra); // la barra ocupa una línea del tope
add(LAY_FILL, new Component()); // resto de la pantalla (placeholder)
}
}
Los fragmentos siguientes muestran solo el núcleo (lo que va dentro de
onShow()). Para ejecutar, colócalos en el esqueletoMainWindowanterior.
Uso básico
Component barra = new Component();
barra.setLayout(new HorizontalLayout(Position.START, Position.CENTER));
barra.add(LAY_AUTO, new ImageView(/* ícono */)); // ancho natural
barra.add(LAY_FILL, new TextField("Buscar...")); // estira
barra.add(LAY_AUTO, new Button("OK")); // ancho natural
Cómo distribuye
┌────────┬───────────────────────────┬────────┐
│ ícone │ campo (LAY_FILL, estica) │ botão │
│ (auto) │ │ (auto) │
└────────┴───────────────────────────┴────────┘
Buenas prácticas
- 1 elemento
LAY_FILLpor fila (el que debe estirarse). - Dos “elásticos” con proporción fija → fracciones (
0.5f/0.5f) o GridLayout.
Errores comunes
- Dos
LAY_FILLen la misma fila. - Usar píxeles (
add(120, x)) en vez de fracción/auto — rompe la responsividad.
Ver también
¿Te resultó útil esta página?¡Gracias por tu opinión!