Como criar uma interface gráfica em Java com Swing: passo a passo de Java Swing

Compartilhe

Avalie este artigo

8 minutos de leitura

O que é a biblioteca Swing Java e para que serve? 

Com a evolução da tecnologia Java, baseada no conceito multiplataforma, a versão 1.2 (codinome Playground) ou Java 2, lançada em 1998, trouxe a API gráfica Swing Java.

O Java Swing integra as JFC (Java Foundation Classes), que reúnem componentes para a construção de uma interface gráfica em Java (GUI - Graphical User Interface – Interface Gráfica do Usuário). 

A biblioteca Swing possibilita o desenvolvimento de interfaces elaboradas para um ambiente de computação heterogêneo com interação mais agradável.

Ao utilizar o Swing Java, é possível criar facilmente uma interface gráfica em Java moderna, multiplataforma e cheia de recursos, sem depender de recursos nativos do sistema operacional. 

Além disso, oferece recursos de acessibilidade que funcionam com dispositivos de entrada e saída, como leitores de tela e terminais Braille. Seus componentes são independentes de plataforma e seguem o padrão MVC (Model–View–Controller, ou Modelo-Visão-Controlador). 

Antes de apresentar o que é um componente no contexto do Java Swing, vale ressaltar que o Swing emprega conceitos fundamentais da programação orientada a objetos, como classes, objetos, encapsulamento, herança e polimorfismo. 

Nota importante (2026): O Java Swing está em modo de manutenção desde que o JavaFX foi anunciado como sucessor oficial. Embora não esteja deprecado e continue recebendo suporte para correções de bugs e segurança, não há desenvolvimento ativo de novos recursos.

Para novos projetos, recomenda-se considerar JavaFX como a solução moderna para interfaces gráficas em Java. 

Neste artigo, vamos explorar os principais conceitos desta biblioteca, demonstrando que criar interfaces gráficas com Swing é menos complexo do que parece. 

Banner de aniversário da Alura com mensagem sobre evolução de carreira em tecnologia. A imagem destaca a oportunidade de estudar e crescer profissionalmente com cursos online, com botão “Aproveite” para acessar a plataforma e desenvolver habilidades tech.

Principais componentes do Swing Java para interface gráfica 

Na programação orientada a objetos, os componentes são classes que implementam a interface gráfica ao usuário.  

No Swing Java, cada componente da biblioteca javax.swing serve para construir elementos visuais (como botões, campos de texto, caixas de diálogo) fundamentais para qualquer interface gráfica Java. 

  • JButton 
  • JCheckBoxName 
  • JLabelGenericName 
  • JTextAreaName 
  • JtextFieldName 
  • JPasswordField 
  • JRadioButtonName 
  • JOptionPane 

Para exibição de um texto simples ou imagem com texto em uma interface gráfica Java, utilizamos o componente JLabel (um dos componentes da biblioteca Swing Java). Os métodos mais comuns desse componente são: 

  • setText() - Insere um valor de texto para exibir um resultado neste componente. 
  • setFont() - Define o tipo, tamanho e o estilo da fonte (negrito e/ou itálico) da fonte. 
  • setIcon() - Permite que um ícone ou imagem seja usado e exibido na tela. 
Caixa de texto (JTextField, JPasswordField e JTextArea). 

Figura 1: Caixa de texto (JTextField, JPasswordField e JTextArea) 

Na figura 1, foram utilizados componentes do Swing Java para o usuário inserir dados em uma interface gráfica em Java.  

A classe JTextField permite a inserção de uma linha de texto, enquanto a classe JPasswordField possibilita inserir um valor de forma camuflada, e por fim, a classe JTextArea é recomendada para entrada de várias linhas de texto. Os métodos mais utilizados nesses componentes são: 

  • setText() - Insere um valor de texto para exibir um resultado neste componente. 
  • getText() - Usado para recuperar o valor da caixa de texto. 
  • setFont() - Define o tipo, tamanho e o estilo da fonte (negrito e/ou itálico) da fonte. 
  • setEnabled() - Permite que a escrita seja desabilitada, e pode ser usado para exibir um resultado como em um JLabel. 
Botões (JRadioButton, JCheckBox e JButton). 

Figura 2: Botões (JRadioButton, JCheckBox e JButton) 

A Figura 2 apresenta componentes que permitem à pessoa usuária interagir de diferentes formas com a interface gráfica 

A classe JRadioButton permite escolher apenas uma opção dentro de um grupo de alternativas, enquanto a classe JCheckBox possibilita selecionar mais de uma dessas opções. Por fim, a classe JButton é usada para executar uma ação quando pressionada. 

Listas suspensas (JComboBox). 

Figura 3: Listas suspensas (JComboBox) 

Semelhante à classe JRadioButton, o JComboBox permite selecionar apenas uma alternativa de um grupo, porém sem ocupar tanto espaço na janela. 

Caixas de diálogo (JOptionPane). 

Figura 4: Caixas de diálogo (JOptionPane) 

Um exemplo de código para exibir uma caixa de diálogo com mensagem, ícone e botões é o seguinte: 

JOptionPane.showMessageDialog(null, "Mensagem", "Título", JOptionPane.WARNING_MESSAGE); 

Nesse caso, o segundo parâmetro indica a mensagem e o terceiro o título da caixa de diálogo. Essas caixas podem ser usadas para exibir confirmações, erros, avisos, entre outros. 

Hierarquia de componentes 

Agora que vimos sobre os componentes, vamos entender como funciona a hierarquia entre eles dentro da biblioteca Swing Java (javax.swing).  

Essa hierarquia é fundamental para o funcionamento dos elementos em uma interface gráfica em Java e ajuda no entendimento de como estruturar uma aplicação Swing Java. Essa hierarquia normalmente é visualizada como uma árvore de componentes. 

A árvore de componentes trabalha com três tipos principais de elementos em uma aplicação: 

  • Recipientes de nível superior: usados geralmente como base da interface, fornecendo um espaço para outros elementos. Exemplos: JFrame, JDialog e JApplet. 
  • Recipientes intermediários: utilizados para organizar e posicionar outros componentes na interface. Exemplos: JPanel, JScrollPane e JTabbedPane. 
  • Recipientes atômicos: elementos que não contêm outros componentes, geralmente responsáveis por apresentar informações ou capturar dados da pessoa usuária. Exemplos: JButton, JLabel, JComboBox, JTextField e JTable. 

A classe JFrame possui três componentes do tipo intermediário usados para configurações avançadas da interface gráfica: Root Pane, Layered Pane e Glass Pane. 

Neste artigo, fizemos uma introdução sobre a biblioteca Swing Java, então não vamos aprofundar sobre esses componentes de nível avançado. Mas, para ilustrar essa hierarquia típica de uma interface gráfica em Java, apresentamos um diagrama com os principais componentes: 

Diagrama hierárquico mostrando a estrutura de componentes Swing: JFrame no topo, conectado via componentes intermediários (representados por reticências) ao Content Pane, seguido por JPanel, que contém dois componentes filhos - JLabel e JTextField. 

Figura 5: Diagrama de um exemplo de hierarquia dos componentes. 

Com base nesse diagrama, segue um exemplo de como criar uma janela utilizando Swing: 

import java.awt.GridBagLayout; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 
import javax.swing.JTextArea; 
public class Main { 
public static void main(String[] args){ 
// componente JFrame 
    JFrame miJFrame = new JFrame("Ejemplo - Java Swing"); 
    miJFrame.setSize(500,300);  
// componente JPanel 
    JPanel miJPanel = new JPanel(); 
    miJPanel.setSize(300, 300); 
// usamos este diseño para centrar los componentes de JPanel 
    miJPanel.setLayout(new GridBagLayout()); 
// componente JTextField 
    JLabel miJLabel = new JLabel(); 
    miJLabel.setText("Dime tu opinión acerca de Java Swing:   "); 
// componente JTextArea 
    JTextArea miJTextArea = new JTextArea(5,20);  
// conecta los componentes JLabel y JTextField en JPanel 
    miJPanel.add(miJLabel); 
    miJPanel.add(miJTextArea); 
// conectar Jpanel a JFrame 
    miJFrame.add(miJPanel); 
// hacer visible JFrame 
    miJFrame.setVisible(true); 
} 
}

Resultado do código para interface gráfica Java: 

Interface gráfica com título “Ejemplo - Java Swing”, no núcleo da interface tem um texto em negrito - localizado do lado esquerdo - que diz “Dime tu opinión acerca de Java Swing: ”. Do lado direito do texto, existe um campo de texto vazio. 

Figura 6: Exemplo de interface gráfica com Java Swing 

Observe que os componentes foram criados individualmente, com suas principais características, e depois conectados para compor a tela final. 

Resumo: como criar interface gráfica em Java com Swing e próximos passos 

Em geral, um aplicativo GUI utilizando a biblioteca Swing Java (javax.swing) segue as seguintes etapas essenciais para criar uma interface gráfica Java do zero: 

  • Criação da janela que conterá os demais objetos gráficos da aplicação; 
  • Inserção dos componentes da interface; 
  • Tratamento de eventos; 
  • Lógica do programa. 

Agora que você conheceu os conceitos básicos dos componentes do Swing, é recomendável explorar mais essa biblioteca e suas possibilidades. O Java Swing é bastante versátil e útil para criar interfaces gráficas interessantes e funcionais. 

Para uma melhor compreensão sobre as classes citadas neste artigo, recomendamos ler a documentação oficial da Oracle. 

Continue evoluindo no desenvolvimento Java

O Swing foi durante muitos anos uma das principais bibliotecas para criação de interfaces gráficas em aplicações desktop Java e, até hoje, continua presente em sistemas corporativos e projetos legados.

Nos cursos de Java da Alura, você pode aprofundar seus conhecimentos em orientação a objetos, criação de aplicações desktop, manipulação de interfaces gráficas e boas práticas de desenvolvimento com Java.

Além do Swing, a plataforma também aborda tecnologias modernas do ecossistema Java, como JavaFX, APIs, Spring Boot, persistência de dados e arquitetura de aplicações, ajudando você a evoluir desde os fundamentos até projetos mais completos e profissionais.

Avalie este artigo

Veja outros artigos sobre Programação