JavaSwing Tutorial: Como criar um aplicativo GUI em Java

o que é Swing em Java?

Swing em Java é um kit de ferramentas de interface gráfica do usuário (GUI) que inclui os componentes da GUI. Swing fornece um rico conjunto de widgets e pacotes para criar componentes GUI sofisticados para aplicativos Java. Swing faz parte do Java Foundation Classes (JFC), que é uma API para programação Java GUI que fornece GUI.

O JavaSwing biblioteca é construída sobre o Java Abstract Widget Toolkit (AWT), um kit de ferramentas GUI mais antigo e dependente da plataforma. Você pode usar os componentes de programação GUI simples do Java, como botão, textobox, etc., da biblioteca e não precisa criar os componentes do zero.

Neste Java Swing tutorial, você aprenderá noções básicas de Java GUI como-

JavaSwing diagrama de hierarquia de classes

JavaSwing Diagrama de hierarquia de classes
JavaSwing Diagrama de hierarquia de classes

Todos os componentes em Java Swing são JComponent que podem ser adicionados às classes de contêiner.

O que é uma classe de contêiner?

Classes contêineres são classes que podem conter outros componentes. Então, para criar um Java Swing GUI, precisamos de pelo menos um objeto contêiner. Existem 3 tipos de Java Swing recipientes.

  1. Painel: é um contêiner puro e não é uma janela em si. O único propósito de um Painel é organizar os componentes em uma janela.
  2. quadro: É uma janela totalmente funcional com seu título e ícones.
  3. diálogo: pode ser pensado como uma janela pop-up que aparece quando uma mensagem precisa ser exibida. Não é uma janela totalmente funcional como o Frame.

O que é GUI em Java?

GUI (Interface Gráfica do Usuário) em Java é um construtor de experiência visual fácil de usar para aplicativos Java. É feito principalmente de componentes gráficos como botões, rótulos, windows, etc. por meio do qual o usuário pode interagir com um aplicativo. A GUI desempenha um papel importante na construção de interfaces fáceis para aplicativos Java.

Como fazer uma GUI em Java com exemplo

Agora neste tutorial Java GUI, vamos entender como criar uma GUI em Java com Swings em exemplos Java.

Passo 1) Copie o código em um editor
Na primeira etapa, copie o seguintewing código em um editor.

import javax.swing.*;
class gui{
    public static void main(String args[]){
       JFrame frame = new JFrame("My First GUI");
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       frame.setSize(300,300);
       JButton button = new JButton("Press");
       frame.getContentPane().add(button); // Adds Button to content pane of frame
       frame.setVisible(true);
    }
}

Passo 2) Execute o código
Próxima etapa, salvar, compilar e executar o código

Passo 3) Copiar a seguirwing código em um editor
Agora vamos adicionar um botão ao nosso quadro. Copiar a seguirwing código em um editor a partir de um determinado exemplo de UI Java

import javax.swing.*;
   class gui{
      public static void main(String args[]){
        JFrame frame = new JFrame("My First GUI");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300,300);
       JButton button1 = new JButton("Press");
       frame.getContentPane().add(button1);
       frame.setVisible(true);
     }
}


Passo 4) Execute o código
Em seguida, execute o código. Você receberá um botão grande.


Exemplo de GUI Java

Passo 5) Adicionar dois botões
Que tal adicionar dois botões? Copie o seguintewing código em um editor.

import javax.swing.*;
class gui{
      public static void main(String args[]){
           JFrame frame = new JFrame("My First GUI");
           frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
           frame.setSize(300,300);
          JButton button1 = new JButton("Button 1");
          JButton button2 = new JButton("Button 2");
          frame.getContentPane().add(button1);
          frame.getContentPane().add(button2);
          frame.setVisible(true);
     }
}

Passo 6) Salve e execute o programa
Em seguida, salve, compile e execute o programa.

Passo 7) Verificar saída
Saída inesperada =? Os botões estão ficando sobrepostos.

Gerenciador de layout Java

O gerenciador de layout é usado para fazer o layout (ou organizar) os componentes GUI Java dentro de um contêiner. Existem muitos gerenciadores de layout, mas os mais usados ​​são-

Java BorderLayout

A BorderLayout coloca componentes em até cinco áreas: superior, inferior, esquerda, direita e centro. É o gerenciador de layout padrão para cada Java JFrame

Java BorderLayout
Java BorderLayout

Java FlowLayout

FlowLayout é o gerenciador de layout padrão para cada JPanel. Ele simplesmente organiza os componentes em uma única linha, um após o outro.

Java FlowLayout
Java FlowLayout

Java GridBagLayout

É o mais sofisticado de todos os layouts. Ele alinha os componentes colocando-os dentro de uma grade de células, permitindowing componentes para abranger mais de uma célula.

Java GridBagLayout
Java GridBagLayout

Passo 8) Criar quadro de bate-papo
Que tal criar um quadro de bate-papo como abaixo?


Exemplo de GUI Java

Tente codificar você mesmo antes de olhar o programa abaixo.

//Usually you will require both swing and awt packages
// even if you are working with just swings.
import javax.swing.*;
import java.awt.*;
class gui {
    public static void main(String args[]) {

        //Creating the Frame
        JFrame frame = new JFrame("Chat Frame");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(400, 400);

        //Creating the MenuBar and adding components
        JMenuBar mb = new JMenuBar();
        JMenu m1 = new JMenu("FILE");
        JMenu m2 = new JMenu("Help");
        mb.add(m1);
        mb.add(m2);
        JMenuItem m11 = new JMenuItem("Open");
        JMenuItem m22 = new JMenuItem("Save as");
        m1.add(m11);
        m1.add(m22);

        //Creating the panel at bottom and adding components
        JPanel panel = new JPanel(); // the panel is not visible in output
        JLabel label = new JLabel("Enter Text");
        JTextField tf = new JTextField(10); // accepts upto 10 characters
        JButton send = new JButton("Send");
        JButton reset = new JButton("Reset");
        panel.add(label); // Components Added using Flow Layout
        panel.add(tf);
        panel.add(send);
        panel.add(reset);

        // Text Area at the Center
        JTextArea ta = new JTextArea();

        //Adding Components to the frame.
        frame.getContentPane().add(BorderLayout.SOUTH, panel);
        frame.getContentPane().add(BorderLayout.NORTH, mb);
        frame.getContentPane().add(BorderLayout.CENTER, ta);
        frame.setVisible(true);
    }
}