Você está na página 1de 7

Interface gráfica em Java

Objetivo: Nesta aula, vocês criarão uma agenda de contatos simples usando interfaces gráficas e a
biblioteca Swing em Java. Vocês aprenderão como usar os componentes gráficos para capturar
informações do usuário e implementar tratadores de eventos para interagir com os contatos.

Descrição:
A agenda de contatos será uma aplicação de desktop que permitirá ao usuário adicionar novos
contatos, exibir os contatos existentes e editar suas informações, incluindo nome, telefone e e-mail.

ActionListener
ActionListener é uma interface no pacote Swing do Java que é usada para lidar com eventos de ação
em componentes de interface gráfica do usuário, como botões, menus, caixas de seleção e outros
elementos interativos. Essa interface é fundamental para capturar e responder a ações do usuário,
como um clique em um botão.

O ActionListener é parte do modelo de programação de eventos no Java Swing, que segue o padrão
Observer (Observador). O componente interativo (por exemplo, um botão) atua como o "editor" de
eventos, enquanto o ActionListener age como um "observador" que aguarda a ocorrência de um
evento (como um clique no botão) e responde a ele executando o código definido no método
actionPerformed().

Aqui está um exemplo de como você pode usar o ActionListener para responder a eventos de clique
em um botão:

import javax.swing.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

public class MyButtonApp {

public static void main(String[] args) {

JFrame frame = new JFrame("Exemplo ActionListener");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setSize(300, 200);

JButton button = new JButton("Clique em mim");

button.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

JOptionPane.showMessageDialog(null, "Botão clicado!");

});
JPanel panel = new JPanel();

panel.add(button);

frame.add(panel);

frame.setVisible(true);

Neste exemplo, criamos um botão e adicionamos um ActionListener a ele. Quando o botão é clicado,
o método actionPerformed() é chamado, exibindo uma caixa de diálogo com a mensagem "Botão
clicado!".

Você pode personalizar a lógica dentro do método actionPerformed() para realizar a ação desejada
em resposta ao evento. O ActionListener é uma parte essencial da programação de GUI no Java
Swing, permitindo que você torne sua interface interativa e responsiva às ações do usuário.

Gerenciadores de leiaute
Em Java, os gerenciadores de leiaute (layout managers) são responsáveis por organizar os
componentes de uma interface gráfica de usuário de maneira eficiente e consistente, garantindo
que eles sejam exibidos de forma adequada, independentemente do tamanho da janela ou
plataforma. Existem vários gerenciadores de leiaute disponíveis no pacote Swing para atender às
diferentes necessidades de design de interface. Abaixo, vou explicar alguns dos gerenciadores de
leiaute mais comuns e fornecer pequenos exemplos de cada um:

FlowLayout:
O FlowLayout organiza os componentes em uma única linha, adicionando-os da esquerda para a
direita. Quando a largura da linha é atingida, os componentes são automaticamente movidos para a
próxima linha.

Exemplo:

import javax.swing.*;

import java.awt.*;

public class FlowLayoutExample {

public static void main(String[] args) {

JFrame frame = new JFrame("FlowLayout Example");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setLayout(new FlowLayout());

frame.add(new JButton("Botão 1"));

frame.add(new JButton("Botão 2"));

frame.add(new JButton("Botão 3"));


frame.pack();

frame.setVisible(true);

BorderLayout:
O BorderLayout organiza os componentes em cinco áreas principais: norte, sul, leste, oeste e centro.
Cada área pode conter apenas um componente.

import javax.swing.*;

import java.awt.*;

public class BorderLayoutExample {

public static void main(String[] args) {

JFrame frame = new JFrame("BorderLayout Example");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setLayout(new BorderLayout());

frame.add(new JButton("Norte"), BorderLayout.NORTH);

frame.add(new JButton("Sul"), BorderLayout.SOUTH);

frame.add(new JButton("Leste"), BorderLayout.EAST);

frame.add(new JButton("Oeste"), BorderLayout.WEST);

frame.add(new JButton("Centro"), BorderLayout.CENTER);

frame.pack();

frame.setVisible(true);

}
GridLayout:
O GridLayout organiza os componentes em uma grade retangular, especificando o número de linhas
e colunas. Todos os componentes têm o mesmo tamanho na grade.

Exemplo:

import javax.swing.*;

import java.awt.*;

public class GridLayoutExample {

public static void main(String[] args) {

JFrame frame = new JFrame("GridLayout Example");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setLayout(new GridLayout(2, 3));

frame.add(new JButton("Botão 1"));

frame.add(new JButton("Botão 2"));

frame.add(new JButton("Botão 3"));

frame.add(new JButton("Botão 4"));

frame.add(new JButton("Botão 5"));

frame.add(new JButton("Botão 6"));

frame.pack();

frame.setVisible(true);

}
Estes são apenas alguns exemplos de gerenciadores de leiaute em Java Swing. Cada um deles
oferece flexibilidade e controle sobre a organização de componentes em uma interface gráfica. A
escolha do gerenciador de leiaute depende das necessidades de design específicas do seu aplicativo.
Você pode até mesmo combinar diferentes gerenciadores de leiaute dentro de um painel para criar
interfaces complexas e bem organizadas.

Exercício
Desenvolvendo a interface de uma Agenda de Contatos

1- Configurar o Ambiente de Desenvolvimento:

Certifique-se de que você tenha o ambiente de desenvolvimento Java configurado no seu


computador. Você precisará de uma IDE (Integrated Development Environment) como o Eclipse,
NetBeans ou IntelliJ IDEA. Certifique-se de que o Java Development Kit (JDK) esteja instalado.

2- Criar um Novo Projeto:

Abra sua IDE e crie um novo projeto. Dê um nome ao projeto, e a IDE deve configurar a estrutura
básica do projeto para você.

3- Crie a Interface Gráfica:

A interface gráfica da sua agenda deve conter três campos de texto para inserir nome, telefone e
email, além de botões para adicionar, editar e excluir contatos. Você pode fazer isso criando um
JFrame e adicionando componentes Swing a ele. Aqui está um exemplo de código para criar a
interface:

import javax.swing.*;

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

public class AgendaApp {

public static void main(String[] args) {

JFrame frame = new JFrame("Agenda");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setSize(400, 200);
JPanel panel = new JPanel();

frame.add(panel);

JLabel nameLabel = new JLabel("Nome:");

JTextField nameField = new JTextField(20);

JLabel phoneLabel = new JLabel("Telefone:");

JTextField phoneField = new JTextField(20);

JLabel emailLabel = new JLabel("Email:");

JTextField emailField = new JTextField(20);

JButton addButton = new JButton("Adicionar");

addButton.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

// Aqui você pode adicionar o código para adicionar um contato à agenda.

});

panel.add(nameLabel);

panel.add(nameField);

panel.add(phoneLabel);

panel.add(phoneField);

panel.add(emailLabel);

panel.add(emailField);

panel.add(addButton);

frame.setVisible(true);

Modifique o gerenciador de leiaute da tela e use um de sua preferência.

Lidar com as Ações dos Botões:


No exemplo acima, há um botão "Adicionar" e um ActionListener que é acionado quando o botão é
clicado. Dentro do ActionListener, você deve adicionar o código para mostrar os dados cadastrados
em uma outra janela.

Teste e Execute o Programa:


Execute o programa e teste a funcionalidade para garantir que a adição de contatos funcione como
esperado.

Você também pode gostar