0% acharam este documento útil (0 voto)
8 visualizações43 páginas

Aula 10 A 12

O documento apresenta uma introdução às Interfaces Gráficas em Java utilizando a biblioteca Swing, destacando a diferença entre Swing e AWT. Ele descreve diversos componentes GUI, como JLabel, JButton, JTextField, e métodos comuns para manipulação desses componentes. Além disso, o documento inclui exemplos práticos de implementação de uma interface gráfica e tratamento de eventos em Java.

Enviado por

Mucazo David
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
8 visualizações43 páginas

Aula 10 A 12

O documento apresenta uma introdução às Interfaces Gráficas em Java utilizando a biblioteca Swing, destacando a diferença entre Swing e AWT. Ele descreve diversos componentes GUI, como JLabel, JButton, JTextField, e métodos comuns para manipulação desses componentes. Além disso, o documento inclui exemplos práticos de implementação de uma interface gráfica e tratamento de eventos em Java.

Enviado por

Mucazo David
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 43

Interfaces Gráficas (GUIs) em Java usando Swing

Parte I - O básico

Prof. Esp. André Aparecido da Silva


Disponível em: http://www.oxnar.com.br/aulas/java/aulajava07a09.pptx
Existe grande quantidade de funcionalidades
disponíveis nas bibliotecas de classes Java, destinadas a
prover a comunicação homem-máquina gráfica.
Interface GUI
• Conhecida como Interface Gráfica com Usuário (Graphical User
Interface – GUI), é onde os resultados são apresentados em modo
gráfico.

• Essa interface é formada através de componentes GUI, conhecidos


por controles ou widgets. Esses componentes são objetos que fazem
a interação com usuário por teclado, mouse ou outros dispositivos
que venham a servir para entrada de dados.
COMPONENTES

Os componentes GUI Swing estão dentro do


pacote javax.swing que são utilizados para construir as
interfaces gráficas. Alguns componentes não são do tipo GUI
Swing e sim componentes AWT. Antes de existir o GUI Swing,
o Java tinha componentes AWT (Abstract Windows Toolkit)
que faz parte do pacote java.awt.
A diferença entre o GUI Swing e AWT, é na aparência e
comportamento dos componentes, ou seja, quando
criado por AWT, a aparência e comportamento de seus
componentes são diferentes para cada plataforma e
enquanto feito por GUI Swing, a aparência e
comportamento funcionam da mesma forma para
todas as plataformas.
Os componentes AWT são mais pesados, pois
requerem uma interação direta com o sistema de
janela local, podendo restringir na aparência e
funcionalidade, ficando menos flexíveis do que os
componentes GUI Swing.
Alguns componentes da GUI swing
• JLabel - Exibe texto não editável ou ícones.
Alguns componentes da GUI swing
• JButton – Libera um evento quando o usuário clicar nele com o
mouse.
Alguns componentes da GUI swing
• JTextField – Insere dados do teclado e serve também para exibição do
texto editável ou não editável.
Alguns componentes da GUI swing
• JCheckBox – Especifica uma opção que pode ser ou não selecionada.
Alguns componentes da GUI swing
• JComboBox – Fornece uma lista de itens onde possibilita o usuário
selecionar um item ou digitar para procurar.
Alguns componentes da GUI swing
• JList – Lista de itens onde pode ser selecionado vários itens.
Alguns componentes da GUI swing
• JPanel – É a área onde abriga e organiza os componentes inseridos.
Métodos comuns em todos os componentes Swing

• get/setPreferredSize
• get/setSize
• get/setLocation
• getLength/Width
• repaint
• setBackground(Color)
• setFont(Font)
• isEnabled / setEnabled(boolean)
• isVisible / setVisible(boolean)
Os elementos básicos necessários para criar um GUI residem em dois
pacotes:
– java.awt: Abstract Windowing Toolkit (classes básicas);
– javax.swing: Swing Components - fornece melhores alternativas aos
componentes definidos na classe java.awt.

Exemplo: estudaremos a classe JButton do Swing no lugar da classe


Button, do java.awt.
Objetos da Classe AWT
Objetos da Classe Swing
Para criar a interface gráfica será necessário importar
algumas bibliotecas:

import java.awt.*;  Dependente do sistema operacional.

import javax.swing.*;

• Independente do sistema operacional;


• Largamente utilizado.
• Mais opções de utilitários para interface

18
Prosseguindo...
public class Primeira_Tela extends JFrame implements ActionListener
{
JLabel lbl_Mostrar;
JButton bt_Escrever, bt_Sair, bt_Limpar;
JPanel Painel_Botoes = new JPanel();

CRIAÇÃO DE OBJETOS (BOTÕES, ETIQUETAS E PAINEIS)


JFrame

• Métodos principais
• public void setTitle(String title): Coloca um título
na barra de título da janela.
• public void show(): Faz o frame aparecer na tela.
• public void setVisible(boolean v): Faz com que o
frame se torne visível (v=true) ou não (v=false).
• public void setDefaultCloseOperation(int op) :
Faz a janela realizar uma determinada operação quando fecha. Mais
comum: JFrame.EXIT_ON_CLOSE
Tornando os botões sensíveis ao eventos
Será necessário importar a biblioteca event nas classes
swing e awt
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing. event.*;

public class Primeira_Tela extends JFrame implements


ActionListener
Tornando os botões sensíveis ao eventos
Será necessário importar a biblioteca event nas classes
swing e awt
import java.awt.*;
Tipos de eventos que
import javax.swing.*; serão obrigatoriamente
import java.awt.event.*; tratados.

import javax.swing. event.*;

public class Primeira_Tela extends JFrame


implements ActionListener
Agora o método construtor da classe
public Primeira_Tela()
{
setLayout(new BorderLayout());
add("Center", lbl_Mostrar = new JLabel ("ETIQUETA PARA ÍMPRESSÃO"));
add("South", Painel_Botoes = new JPanel ());
Painel_Botoes.setLayout(new FlowLayout());
Painel_Botoes.add(bt_Escrever = new JButton ("ESCREVER"));
Painel_Botoes.add(bt_Limpar = new JButton ("LIMPAR"));
Painel_Botoes.add(bt_Sair = new JButton("SAIR DO SISTEMA"));
bt_Escrever.addActionListener(this);
bt_Sair.addActionListener(this);
bt_Limpar.addActionListener(this);
setTitle("Minha Primeira Tela Java");
setSize(400, 500);
setVisible(true);
}
Tornando os botões sensíveis ao eventos
public Primeira_Tela()
{
setLayout(new BorderLayout());
add("Center", lbl_Mostrar = new JLabel ("ETIQUETA PARA ÍMPRESSÃO"));
add("South", Painel_Botoes = new JPanel ());
Painel_Botoes.setLayout(new FlowLayout());
Painel_Botoes.add(bt_Escrever = new JButton ("ESCREVER"));
Painel_Botoes.add(bt_Limpar = new JButton ("LIMPAR"));
Painel_Botoes.add(bt_Sair = new JButton("SAIR DO SISTEMA"));
bt_Escrever.addActionListener(this);
bt_Sair.addActionListener(this);
bt_Limpar.addActionListener(this);
setTitle("Minha Primeira Tela Java");
setSize(400, 500);
setVisible(true);
}
Tornando os botões sensíveis ao eventos
public Primeira_Tela()
{
setLayout(new BorderLayout());
add("Center", lbl_Mostrar = new JLabel ("ETIQUETA PARA ÍMPRESSÃO"));
add("South", Painel_Botoes = new JPanel ());
Painel_Botoes.setLayout(new FlowLayout());
Painel_Botoes.add(bt_Escrever = new JButton ("ESCREVER"));
Painel_Botoes.add(bt_Limpar = new JButton ("LIMPAR"));
Painel_Botoes.add(bt_Sair = new JButton("SAIR DO SISTEMA"));
bt_Escrever.addActionListener(this); Título da janela
bt_Sair.addActionListener(this);
bt_Limpar.addActionListener(this);
setTitle("Minha Primeira Tela Java");
setSize(400, 500); Tamanho da janela
setVisible(true);
}
Torna a janela visível
Tratamento de eventos
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==bt_Sair)
{System.exit(0); }
if(e.getSource()==bt_Escrever)
{lbl_Mostrar.setText("ANDRÉ APARECIDO DA SILVA");}
if(e.getSource()==bt_Limpar)
{
lbl_Mostrar.setBackground( new Color(255,255,255) );
lbl_Mostrar.setText("ETIQUETA PARA ÍMPRESSÃO");

}
}
A TELA
Outro programa GUI em Java
import javax.swing.*;
public class Ola2 {
public static void main(String[] args) {
JFrame frame = new JFrame(“Aula de Programação web");
final JLabel label = new JLabel(“Olá, Ana Carolina
Bertoldi");
frame.getContentPane().add(label);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true); pack() faz com que a janela seja ajustada para
} o tamanho preferido de todos os seus sub-
componentes.
}
COMO SERIA UMA TELA DE UM PROGRAMA QUE
CONVERTESSE GRAUS CELSIUS PARA FIRERAIT ?
Eu imaginei assim
E para implementar ficaria como?
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
public class ConversorFahrenheit extends JFrame implements ActionListener
{
JLabel lbl_Resultado;
JButton bt_Converter, bt_Sair, bt_Limpar;
JPanel Painel_Botoes = new JPanel(new FlowLayout(FlowLayout.CENTER));
JPanel Painel_Oeste = new JPanel(new GridLayout(2, 1));
JPanel Painel_Oeste1 = new JPanel(new FlowLayout(FlowLayout.RIGHT));
JPanel Painel_Oeste2 = new JPanel(new FlowLayout(FlowLayout.RIGHT));
JPanel Painel_Centro = new JPanel(new GridLayout(2, 1));
JPanel Painel_Centro1 = new JPanel(new FlowLayout(FlowLayout.LEFT));
JPanel Painel_Centro2 = new JPanel(new FlowLayout(FlowLayout.LEFT));
JTextField txt_Valor_para_Conversao = new JTextField(30);
public ConversorFahrenheit()
{
setLayout(new BorderLayout());
getContentPane().add("South",Painel_Botoes);
getContentPane().add("Center", Painel_Centro);
getContentPane().add("West", Painel_Oeste);
Painel_Oeste.add(Painel_Oeste1);
Painel_Oeste1.add(new JLabel("Informe o Valor: "));
Painel_Oeste.add(Painel_Oeste2);
Painel_Oeste2.add(new JLabel("Resultado: "));

....
Painel_Centro.add(Painel_Centro1);
Painel_Centro.add(Painel_Centro2);
Painel_Centro1.add(txt_Valor_para_Conversao);
Painel_Centro2.add(lbl_Resultado = new JLabel
("............."));
lbl_Resultado.setBackground(Color.orange);
getContentPane().add("South", Painel_Botoes = new JPanel ());
Painel_Botoes.setLayout(new FlowLayout());

Painel_Botoes.add(bt_Converter = new JButton ("CONVERTER"));


Painel_Botoes.add(bt_Limpar = new JButton ("LIMPAR"));
Painel_Botoes.add(bt_Sair = new JButton("SAIR DO SISTEMA"));
bt_Converter.addActionListener(this);
bt_Sair.addActionListener(this);
bt_Limpar.addActionListener(this);
setTitle("Coversor para graus Fahrenheit");
pack();
setVisible(true);
}
FIM DO METODO CONSTRUTOR
Método para execução

public static void main (String args [])


{
new ConversorFahrenheit();
}
Compilando até aqui, apesar de não haver
erros de grafia ou lógica ainda da erro
Compilando até aqui, apesar de não haver
erros de grafia ou lógica ainda da erro
Faltou implementar os métodos ouvintes
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==bt_Sair)
{System.exit(0);}
if(e.getSource()==bt_Converter)
{
if(txt_Valor_para_Conversao.getText().equals(""))
{lbl_Resultado.setText("Digite um valor válido acima!!!");}
else
{
double Numero = Double.parseDouble(txt_Valor_para_Conversao.getText());
Numero = (Numero * 1.8) + 32;
lbl_Resultado.setText(Numero+"º");
}
}
if(e.getSource()==bt_Limpar)
{
lbl_Resultado.setBackground( new Color(255,255,255) );
lbl_Resultado.setText("Digite um valor acima e clique em converter");
txt_Valor_para_Conversao.setText("");

}
}
Minha tela ficou funcionando assim
VAMOS PRATICAR...
• Crie uma classe que a tenha uma JLabel e ao clicar num botão
apareça o texto DISCIPLINA DE LINGUAGEM DE PROGRAMAÇÃO!!!

• Crie uma classe para calculo de IMC


Atividade valendo 1,0 ponto

• Elaboraremos na próxima
semana

•Elaboraremos uma calculadora


Para juros compostos usando
java

Você também pode gostar