HorizontalLayout
Dispõe os componentes-filhos lado a lado (uma coluna por filho), da esquerda para a direita. É o par horizontal do VerticalLayout — ideal para barras e linhas de controles.
🟢 · Pacote:
dev.crossfly.ui.layout· Estende:Layout
Quando usar
- Barras de busca/ação:
[ícone] [campo que estica] [botão]. - Qualquer linha de controles.
Quando NÃO usar
- Empilhar verticalmente → VerticalLayout.
- Precisa de várias colunas com proporção por linha → GridLayout.
add(...) — assinatura e semântica
public HorizontalLayout add(float largura, Component c)
| Valor | Significado |
|---|---|
LAY_AUTO (0f) |
largura natural do componente |
LAY_FILL (-1f) |
preenche a sobra (use uma coluna FILL) |
> 0 (ex. 0.5f) |
fração da largura do contêiner |
Construtores
| Construtor | Descrição |
|---|---|
new HorizontalLayout() |
itens centralizados verticalmente |
new HorizontalLayout(Position h, Position v) |
v = alinhamento vertical de cada coluna |
Exemplo completo (copiar, colar e rodar)
package com.exemplo;
import dev.crossfly.ui.*;
import dev.crossfly.ui.layout.*;
/** Tela principal executável. Aponte o launcher (classname) e rode: 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("🔎")); // largura natural
barra.add(LAY_FILL, new TextField("Buscar...")); // estica
barra.add(LAY_AUTO, new Button("OK")); // largura natural
add(LAY_AUTO, barra); // a barra ocupa uma linha do topo
add(LAY_FILL, new Component()); // resto da tela (placeholder)
}
}
Os trechos abaixo mostram só o miolo (o que vai dentro de
onShow()). Para rodar, coloque-os no esqueletoMainWindowacima.
Uso básico
Component barra = new Component();
barra.setLayout(new HorizontalLayout(Position.START, Position.CENTER));
barra.add(LAY_AUTO, new ImageView(/* ícone */)); // largura natural
barra.add(LAY_FILL, new TextField("Buscar...")); // estica
barra.add(LAY_AUTO, new Button("OK")); // largura natural
Como arranja
┌────────┬───────────────────────────┬────────┐
│ ícone │ campo (LAY_FILL, estica) │ botão │
│ (auto) │ │ (auto) │
└────────┴───────────────────────────┴────────┘
Boas práticas
- 1 elemento
LAY_FILLpor linha (o que deve esticar). - Dois “elásticos” com proporção fixa → frações (
0.5f/0.5f) ou GridLayout.
Erros comuns
- Dois
LAY_FILLna mesma linha. - Usar pixels (
add(120, x)) em vez de fração/auto — quebra a responsividade.
Veja também
Esta página foi útil?Obrigado pelo feedback!