Swing

TL;DR

Galho 5 da trilha Java Senior. GUI desktop com Swing, do modelo de componentes ao estado atual da API: componentes e containers, layout managers, modelo de eventos, a Event Dispatch Thread (EDT) e SwingWorker, MVC/separable model (TableModel/ListModel), renderers e editors, Look and Feel, custom painting, Action API/key bindings e uma capstone honesta sobre quando (não) usar Swing hoje. 12 notas atômicas em 3 fases (Iniciado/Adepto/Magus), cada uma com seção “Em entrevista” em inglês.

Sobre este galho

Swing é a primeira das duas interfaces desktop da trilha (a outra é o Galho 6, JavaFX). O galho é dono do modelo de GUI desktop Swing e do threading do Swing (a regra single-thread da EDT, SwingWorker) — para os primitivos de concorrência subjacentes, linka para o Galho 4 (Concorrência) em vez de re-explicar.

É também o primeiro galho construído por pesquisa, não por refator de um monolito: não havia um tronco Swing.md para podar. Cada nota nasce de documentação oficial (The Java Tutorials — Creating a GUI with Swing, dev.java, Javadoc javax.swing) verificada na escrita.

Audiência primária: dev senior em preparação para entrevista internacional — precisa explicar o modelo (por que single-thread, lightweight vs heavyweight), reconhecer armadilhas em code review e decidir arquitetura com honestidade. Audiência secundária: quem mantém ou avalia uma aplicação Swing em produção (ferramentas internas, IDEs, apps legados).

Iniciado

Vocabulário e modelo mental — o suficiente para montar uma tela funcional.

  • 01 — O modelo do Swing — o que é Swing, lightweight vs heavyweight (AWT), hierarquia ComponentJComponent, top-level containers e content pane, pluggable look-and-feel.
  • 02 — Componentes e containers — o catálogo de widgets: botões, labels, campos de texto, seleção, JTable/JTree, containers intermediários, menus, toolbars e diálogos.
  • 03 — Layout managersBorderLayout, FlowLayout, GridLayout, BoxLayout, CardLayout, GridBagLayout, aninhamento e sizing; o anti-pattern do null layout.
  • 04 — O modelo de eventos — o delegation event model: listeners, event objects, lambdas vs classes anônimas vs adapters.

Adepto

Domínio operacional — usar Swing com confiança.

Magus

Maestria e decisão de arquitetura.

Rotas alternativas

  • Completa — 01 → 02 → 03 → 04 → 05 → 06 → 07 → 08 → 09 → 10 → 11 → 12 (o galho inteiro, em ordem).
  • Entrevista internacional — 01 → 04 → 05 → 06 → 07 → 12 (o modelo, eventos, EDT, SwingWorker, models e o estado atual — o que mais cai).
  • Threading do Swing — 05 → 06 → 11 (EDT, SwingWorker e responsividade; liga ao Galho 4).
  • Construir uma tela do zero — 01 → 02 → 03 → 04 → 07 (montar uma UI funcional alimentada por dados).
  • Aparência e customização — 03 → 09 → 08 → 10 (layouts, Look and Feel, renderers e pintura customizada).

Todas as notas

TABLE fase, status, updated
FROM "03-Dominios/Java/Swing"
WHERE type = "concept"
SORT file.name ASC

Veja também