GUI Java:
Componentes
e Eventos
Esta apresentação aborda os blocos
construtivos fundamentais de interfaces
gráficas em Java Swing, incluindo
componentes, gerenciamento de layout e
tratamento de eventos.
Sumário •Componentes GUI e contêineres (JFrame).
•Gerenciamento de layout e
posicionamento.
•Programação orientada a eventos em
Java.
•Manipulação de eventos em botões.
•Exemplo prático de construção de
formulário.
Introdução à GUI em
Java
Interfaces Gráficas do Usuário (GUI) permitem a interação
visual com softwares, tornando-os intuitivos e acessíveis. Elas
são cruciais para a usabilidade e experiência do usuário em
aplicações modernas. Em Java, usamos bibliotecas como AWT
e Swing, desenvolvendo em ambientes como o Eclipse.
Componentes
Essenciais da
GUI
• Agrupamento: Organiza
componentes (JPanel, JTabbedPane).
• Texto: Exibe e coleta dados (JLabel,
JTextField, JTextArea).
• Seleção: Permite escolhas
(JCheckBox, JRadioButton,
JComboBox).
• Botões: Acionam ações (JButton).
Detalhando
Componentes: Texto
Os componentes de texto são essenciais para exibir
informações e capturar entrada do usuário em interfaces
gráficas. O JLabel é utilizado para exibir texto estático,
funcionando como rótulos ou descrições. Para entrada de
dados, o JTextField permite que o usuário insira texto em uma
única linha, enquanto o JTextArea oferece suporte à entrada
de texto em múltiplas linhas, ideal para campos maiores como
comentários.
Detalhando Componentes:
Seleção
• JCheckBox: Múltiplas opções, seleção independente.
• JRadioButton: Seleção única, agrupado com ButtonGroup.
• JComboBox: Lista suspensa, escolha um item.
• Essenciais para interação e entrada de dados.
JFrame: A Janela
Principal
O JFrame é o contêiner principal para aplicações GUI em Java,
atuando como a janela da aplicação. Métodos cruciais incluem
setSize() para dimensões, setTitle() para o título,
setDefaultCloseOperation() para o encerramento, e
setVisible(true) para exibir.
Por exemplo, new JFrame("App").setSize(800,
600).setVisible(true); cria uma janela básica.
Gerenciadores de Layout
(Layout Managers)
• Importância: Organizam e posicionam componentes em
contêineres.
• Tipos comuns: FlowLayout, BorderLayout, GridLayout.
• BoxLayout: Organiza em linha ou coluna flexível.
• Aplicação: Definidos usando setLayout() no contêiner.
BorderLayout em
FlowLayout em Ação
Ação
O FlowLayout organiza O BorderLayout divide o
componentes em uma linha, da contêiner em cinco regiões: Norte,
esquerda para a direita, Sul, Leste, Oeste e Centro. Cada
quebrando para a próxima linha se região pode conter um único
não houver espaço. Componentes componente, adicionado com
são adicionados sequencialmente, panel.add(new
como em panel.add(new JLabel("Título"),
JButton("Botão 1"));. É o layout BorderLayout.NORTH);. É o
padrão para JPanel, ideal para layout padrão para JFrame, útil
formulários simples. para interfaces com áreas fixas.
Orientação a
Eventos: O
A programação orientada a
Paradigma
eventos é um paradigma onde o
fluxo do programa é determinado
por eventos, como cliques do
mouse ou teclas pressionadas. A
aplicação permanece inativa até
que um evento ocorra, reagindo a
ele por meio de manipuladores de
eventos específicos. Um "event
loop" monitora e despacha esses
eventos para os componentes
apropriados, garantindo a
interatividade.
Tratamento de Eventos:
Interfaces
• Modelo de Delegação: fonte, evento e ouvinte.
• Interface ActionListener: para eventos de ação (ex: clique).
• actionPerformed(ActionEvent e): método invocado pelo
evento.
• Classes Adaptadoras: simplificam implementação de
interfaces.
Manipulando Eventos em
Botões
Para manipular eventos de cliques em JButtons, registramos
um ActionListener usando o método addActionListener().
Uma abordagem comum é utilizar uma classe interna anônima
que implementa a interface ActionListener. Ao clicar no
botão, o método actionPerformed() dessa classe é invocado,
executando o código definido para a ação.
Exemplo de frame ou tela
utilizando o Swing do Java:
Editor para interfaces
gráficas acoplado ao
Eclipse
Código para gerar a tela
representada
1. package view;
2. import javax.swing.JFrame;
3. public class InterfaceGrafica extends JFrame{
4. public InterfaceGrafica(){
5. setSize(400,500);
6. setTitle(“Tela Inicial”);
7. setVisible(true);
8. }
9. public static void main(String[] args) {
10. InterfaceGrafica telaInicial = new InterfaceGrafica();
11. }
12. }
Interface gráfica em Java com JLabel
e JTextField
package view; setTitle(“Tela Inicial”);
import javax.swing.JFrame; setVisible(true);
import javax.swing.JLabel; setLayout(null);
import javax.swing.JTextField; lblNome.setBounds(10,10,100,25);
txtNome.setBounds(50,10,200,25);
public class PrimeiraTela extends JFrame { getContentPane().add(lblNome);
private JLabel lblNome; getContentPane().add(txtNome);
private JTextField txtNome; }
public PrimeiraTela() { public static void main(String[] args) {
lblNome = new JLabel(“Nome”); PrimeiraTela t1 = new PrimeiraTela();
txtNome = new JTextField(); }
}
setSize(400,200);
Componentes básicos da
biblioteca Swing
Pense neste formulário:
Boas Práticas
e Estrutura
Para aplicações GUI maiores, é
crucial organizar o código de
forma modular. Separe a lógica
da interface do usuário em
classes dedicadas, como
estender `JFrame` para
encapsular os componentes e
comportamentos da janela.
Isso promove código limpo,
reutilizável e de fácil
manutenção, facilitando o
desenvolvimento e a
depuração.
Desafio Prático:
Aplicação Cadastro
Crie uma interface GUI para capturar nome e idade, exibindo os
dados em um rótulo ao clicar no botão 'Enviar'.
Recursos
https://www.youtube.com/watch?v=uQWVgMeOeHwhttps://
www.youtube.com/watch?v=01iQgH9g5Lohttps://
www.youtube.com/watch?v=E530t-WNTokhttps://
www.youtube.com/watch?v=ycY0W52eDUc
•GUIs em Java são fundamentais para
aplicações interativas.
Conclusão •Componentes como JLabel, JTextField e
JButton são blocos básicos.
•Gerenciadores de layout organizam
componentes eficientemente.
•A programação orientada a eventos é
central para a interatividade.
•A modularização do código é vital para
GUIs complexas.