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. O Swing fornece um rico conjunto de widgets e pacotes para criar componentes GUI sofisticados para aplicativos Java. Swing é parte do Java Foundation Classes (JFC), que é uma API para programas Java que fornecem GUI.
A biblioteca Java Swing é 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 Java GUI como botão, caixa de texto, etc. da biblioteca e não precisa criar os componentes do zero.
Neste tutorial Java Swing, você aprenderá-
- O que é Swing em Java?
- O que é uma classe de contêiner?
- O que é GUI em Java?
- Exemplo de GUI Java
- Gerenciador de Layout Java
- Java BorderLayout
- Java FlowLayout
- Java GridBagLayout
Diagrama de hierarquia da classe Java Swing
Todos os componentes em Java Swing são JComponent que podem ser adicionados a classes de contêiner.
O que é uma classe de contêiner?
As classes de contêiner são classes que podem ter outros componentes. Portanto, para criar uma GUI Java, precisamos de pelo menos um objeto container. Existem 3 tipos de contêineres Java Swing.
- 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.
- Quadro : é uma janela totalmente funcional com seu título e ícones.
- Diálogo : pode ser considerado 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 (Graphical User Interface) 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, janelas, etc. por meio dos quais o usuário pode interagir com um aplicativo. A GUI desempenha um papel importante na construção de interfaces fáceis para aplicativos Java.
Exemplo de GUI Java
Agora, neste tutorial de Swing Java, vamos entender a GUI com exemplos de Java Swing.
Exemplo : Para aprender a programação Java GUI neste tutorial Java GUI Etapa 1) Copie o seguinte 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 frameframe.setVisible(true);}}
Etapa 2) Salvar, compilar e executar o código.Etapa 3) Agora vamos adicionar um botão ao nosso frame. Copie o código a seguir em um editor do Exemplo de GUI Java fornecido
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);}}
Etapa 4) Execute o código. Você receberá um botão grande
Etapa 5) Que tal adicionar dois botões? Copie o código a seguir 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);}}
Etapa 6) Salvar, compilar e executar o programa.Etapa 7) Saída inesperada =? Os botões estão se sobrepondo.
Gerenciador de Layout Java
O gerenciador de layout é usado para fazer o layout (ou organizar) os componentes da GUI java dentro de um contêiner. Existem muitos gerenciadores de layout, mas os mais frequentemente usados são-
Java BorderLayout
ABorderLayout
coloca componentes em até cinco áreas: superior, inferior, esquerda, direita e central. É o gerenciador de layout padrão para cada java JFrame
Java FlowLayout
FlowLayout
é o gerenciador de layout padrão para todos JPanel
. Ele simplesmente apresenta os componentes em uma única linha, um após o outro.
Java GridBagLayout
É o mais sofisticado de todos os layouts. Ele alinha os componentes colocando-os dentro de uma grade de células, permitindo que os componentes ocupem mais de uma célula.
Etapa 8) Que tal criar um quadro de bate-papo como abaixo?
Tente codificar você mesmo antes de olhar para 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 FrameJFrame frame = new JFrame("Chat Frame");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(400, 400);//Creating the MenuBar and adding componentsJMenuBar 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 componentsJPanel panel = new JPanel(); // the panel is not visible in outputJLabel label = new JLabel("Enter Text");JTextField tf = new JTextField(10); // accepts upto 10 charactersJButton send = new JButton("Send");JButton reset = new JButton("Reset");panel.add(label); // Components Added using Flow Layoutpanel.add(tf);panel.add(send);panel.add(reset);// Text Area at the CenterJTextArea 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);}}