SlideShare a Scribd company logo
1 of 8
UNIVERSIDADE PRESBITERIANA MACKENZIE
FACULDADE DE COMPUTAÇÃO E INFORMÁRICA
BACHARELADO EM SISTEMAS DE INFORMAÇÃO
Disciplina: Linguagem de Programação 2
Campus Higienópolis: Rua da Consolação, 896 l Consolação l São Paulo - SP l CEP 01302-907
Tel. (11) 2114-8000 Fax (11) 3214 - 3102 l http://www.mackenzie.br e-mail: sistemasdeinformacao@mackenzie.com.br
Lista de Exercícios #02
Descrição: Componentes GUI (Java AWT e Java Swing).
Responda os exercícios de acordo com a figura abaixo. OBS: Essa
janela foi implementada na Lista #01.
1) Utilize o método windowOpened() da interface
WindowListener, para exibir a caixa de diálogo abaixo no
momento em que o usuário abrir a aplicação.
a. Dentro do construtor da classe Janela, faça uma chamada
ao método addWindowListener(). Esse método
adiciona um “ouvinte” a sua Janela.
UNIVERSIDADE PRESBITERIANA MACKENZIE
FACULDADE DE COMPUTAÇÃO E INFORMÁRICA
BACHARELADO EM SISTEMAS DE INFORMAÇÃO
Disciplina: Linguagem de Programação 2
Campus Higienópolis: Rua da Consolação, 896 l Consolação l São Paulo - SP l CEP 01302-907
Tel. (11) 2114-8000 Fax (11) 3214 - 3102 l http://www.mackenzie.br e-mail: sistemasdeinformacao@mackenzie.com.br
b. Dentro do parâmetro do método
addWindowListener() crie uma classe do tipo
java.awt.event.WindowAdapter
c. Dentro da classe WindowAdapter, sobrescreva o método
windowOpened() da interface WindowListener
d. Dentro desse método, faça uma chamada para qualquer
método da classe Janela. Veja o exemplo abaixo:
addWindowListener(new WindowAdapter() {
@Override
public void windowOpened(WindowEvent evt) {
/* Coloque aqui o nome do método que deverá
ser chamado no momento em que a "Janela"
for aberta. */
}
});
e. Dentro desse método, você deve criar uma caixa de diálogo
(JOptionPane) para exibir a mensagem na tela. Veja o
exemplo abaixo:
JOptionPane.showMessageDialog(this,
"Universidade Presbiteriana Mackenzie!",
"Linguagem de Programação II",
JOptionPane.INFORMATION_MESSAGE);
2) Utilize o método windowClosing() da interface
WindowListener, para exibir a caixa de diálogo abaixo no
momento em que o usuário fechar a aplicação.
UNIVERSIDADE PRESBITERIANA MACKENZIE
FACULDADE DE COMPUTAÇÃO E INFORMÁRICA
BACHARELADO EM SISTEMAS DE INFORMAÇÃO
Disciplina: Linguagem de Programação 2
Campus Higienópolis: Rua da Consolação, 896 l Consolação l São Paulo - SP l CEP 01302-907
Tel. (11) 2114-8000 Fax (11) 3214 - 3102 l http://www.mackenzie.br e-mail: sistemasdeinformacao@mackenzie.com.br
a. Dentro da classe WindowAdapter (criada anteriormente),
sobrescreva o método windowClosing() da interface
WindowListener
b. Dentro desse método, faça uma chamada para qualquer
método da classe Janela onde será exibida a caixa de diálogo
acima.
3) A janela contém seis caixas de textos (jtfAgencia,
jtfConta, jtfNome, jtfEndereco, jtfTelefone e
jtfCpf). No momento em que o usuário ativar algum desses
componentes, a cor do componente selecionado será alterado para
amarelo. No momento em que o usuário sair do componente, a
cor deve voltar a ser branca. Para isso, implemente a lógica abaixo
em todos os componentes citados anteriormente.
a. Dentro do construtor da classe Janela, após definir o
tamanho e a posição de cada JTextField, faça uma chamada
ao método addFocusListener() a partir do
componente criado. Esse método adiciona um “ouvinte” que
gerencia os focus do seu componente.
b. Dentro do parâmetro do método addFocusListener()
crie uma classe do tipo
java.awt.event.FocusAdapter
c. Dentro da classe FocusAdapter, sobrescreva o método
focusGained() da interface FocusListener
UNIVERSIDADE PRESBITERIANA MACKENZIE
FACULDADE DE COMPUTAÇÃO E INFORMÁRICA
BACHARELADO EM SISTEMAS DE INFORMAÇÃO
Disciplina: Linguagem de Programação 2
Campus Higienópolis: Rua da Consolação, 896 l Consolação l São Paulo - SP l CEP 01302-907
Tel. (11) 2114-8000 Fax (11) 3214 - 3102 l http://www.mackenzie.br e-mail: sistemasdeinformacao@mackenzie.com.br
d. Dentro desse método, faça uma chamada para qualquer
método da classe Janela. Veja o exemplo abaixo:
jtfNome.addFocusListener(new FocusAdapter() {
@Override
public void focusGained(FocusEvent evt) {
/* Coloque aqui o nome do método que deverá
ser chamado no momento em que o
componente ganhar focus. */
}
});
e. Dentro desse método, você deve alterar a cor do
componente selecionado pelo usuário:
jtfNome.setBackground(Color.YELLOW);
f. Essa mesma lógica deve ser utilizada para gerenciar quando o
componente perde o focus. Dentro da classe
FocusAdapter (criada anteriormente), sobrescreva o
método focusLost() da interface FocusListener
g. Dentro desse método, faça uma chamada para qualquer
método da classe Janela onde será alterada a cor do
componente, através do código abaixo:
jtfNome.setBackground(Color.WHITE);
UNIVERSIDADE PRESBITERIANA MACKENZIE
FACULDADE DE COMPUTAÇÃO E INFORMÁRICA
BACHARELADO EM SISTEMAS DE INFORMAÇÃO
Disciplina: Linguagem de Programação 2
Campus Higienópolis: Rua da Consolação, 896 l Consolação l São Paulo - SP l CEP 01302-907
Tel. (11) 2114-8000 Fax (11) 3214 - 3102 l http://www.mackenzie.br e-mail: sistemasdeinformacao@mackenzie.com.br
h. O resultado dessa implementação deve ser parecida com o
exemplo abaixo:
4) As caixas de textos jtfAgencia, jtfConta,
jtfTelefone e jtfCpf são todas numéricas. Desse modo,
adicione aos componentes uma máscara para permitir que
somente caracteres numéricos sejam digitados pelo usuário. Já que
estamos trabalhando com máscaras, vamos formatar o texto
digitado pelo usuário.
a. A classe que controla as máscaras das caixas de texto é a
javax.swing.text.MaskFormatter. A classe
MaskFormatter contém um construtor alternativo que
recebe uma String com a máscara formatada. Por exemplo,
para criar uma máscara para o CPF devemos criar o objeto
com a String: "###.###.###-##"
b. A máscara não pode ser aplicada diretamente em objetos do
tipo JTextField. Mantenha a declaração das caixas de texto
como JTextField, porém as instâncias criadas para esses
objetos serão do tipo JFormattedTextField (polimorfismo).
UNIVERSIDADE PRESBITERIANA MACKENZIE
FACULDADE DE COMPUTAÇÃO E INFORMÁRICA
BACHARELADO EM SISTEMAS DE INFORMAÇÃO
Disciplina: Linguagem de Programação 2
Campus Higienópolis: Rua da Consolação, 896 l Consolação l São Paulo - SP l CEP 01302-907
Tel. (11) 2114-8000 Fax (11) 3214 - 3102 l http://www.mackenzie.br e-mail: sistemasdeinformacao@mackenzie.com.br
c. O componente jtfAgencia deve ter a seguinte máscara:
“####-#”
d. O componente jtfConta deve ter a seguinte máscara:
“#####-#”
e. O componente jtfTelefone deve ter a seguinte máscara:
“(0xx##) ####-####”
f. O componente jtfCpf deve ter a seguinte máscara:
“###.###.###-##”
g. O caractere # serve como um coringa, e só pode ser
substituído por um caractere numérico
h. Para utilizar a classe MaskFormatter é necessário fazer o
tratamento de exceção do tipo ParseException. Veja um
exemplo abaixo:
try {
jtfCpf =
new JFormattedTextField(
new MaskFormatter("###.###.###-##"));
} catch (ParseException ex) {
}
UNIVERSIDADE PRESBITERIANA MACKENZIE
FACULDADE DE COMPUTAÇÃO E INFORMÁRICA
BACHARELADO EM SISTEMAS DE INFORMAÇÃO
Disciplina: Linguagem de Programação 2
Campus Higienópolis: Rua da Consolação, 896 l Consolação l São Paulo - SP l CEP 01302-907
Tel. (11) 2114-8000 Fax (11) 3214 - 3102 l http://www.mackenzie.br e-mail: sistemasdeinformacao@mackenzie.com.br
i. O resultado dessa implementação deve ser parecida com o
exemplo abaixo:
5) Finalizando essa lista de exercício, vamos adicionar os eventos para
componentes do tipo JButton ao nosso projeto. Para isso:
a. Utilize o método actionPerformed() da interface
ActionListener, para controlar os eventos nos botões
jbConsultar, jbAtualizar e jbFechar
b. Dentro do construtor da classe Janela, após definir o
tamanho, a posição e o atalho de cada JButton, faça uma
chamada ao método addActionListener() a partir do
componente criado. Esse método adiciona um “ouvinte” que
gerencia todos os eventos que o usuário pode provocar nos
botões a partir do teclado ou do mouse
c. Dentro do parâmetro do método
addActionListener() crie uma classe do tipo
java.awt.event.ActionListener
d. Dentro da classe ActionListener, implemente o método
actionPerformed()
UNIVERSIDADE PRESBITERIANA MACKENZIE
FACULDADE DE COMPUTAÇÃO E INFORMÁRICA
BACHARELADO EM SISTEMAS DE INFORMAÇÃO
Disciplina: Linguagem de Programação 2
Campus Higienópolis: Rua da Consolação, 896 l Consolação l São Paulo - SP l CEP 01302-907
Tel. (11) 2114-8000 Fax (11) 3214 - 3102 l http://www.mackenzie.br e-mail: sistemasdeinformacao@mackenzie.com.br
e. Dentro desse método, faça uma chamada para qualquer
método da classe Janela. Veja o exemplo abaixo:
jbConsultar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
/* Coloque aqui o nome do método que deverá
ser chamado no momento em que o usuário clicar
no botão. */
}
});
f. Adicione um evento para o componente jbConsultar,
que exiba a caixa de diálogo abaixo caso o usuário não
preencha ao menos um dos campos jtfAgencia e
jtfConta
g. Adicione um evento para o componente jbFechar, que
feche a aplicação caso o usuário clique no botão Fechar. Para
fechar a aplicação, utilize o comando abaixo:
System.exit(0);

More Related Content

What's hot

What's hot (11)

Minicurso Java
Minicurso JavaMinicurso Java
Minicurso Java
 
Basico dovba excel_tutorial1
Basico dovba excel_tutorial1Basico dovba excel_tutorial1
Basico dovba excel_tutorial1
 
Construindo aplicações com netbeans
Construindo aplicações com netbeansConstruindo aplicações com netbeans
Construindo aplicações com netbeans
 
Java interface gráfica swing
Java   interface gráfica swingJava   interface gráfica swing
Java interface gráfica swing
 
Capítulo 04 - Persistência de dados com SQLite
Capítulo 04 - Persistência de dados com SQLiteCapítulo 04 - Persistência de dados com SQLite
Capítulo 04 - Persistência de dados com SQLite
 
Java gui
Java guiJava gui
Java gui
 
Introdução ao Java Swing (Interface)
Introdução ao Java Swing (Interface)Introdução ao Java Swing (Interface)
Introdução ao Java Swing (Interface)
 
Aplicações java com netbeans
Aplicações  java com  netbeansAplicações  java com  netbeans
Aplicações java com netbeans
 
Java 17 Swing
Java 17 SwingJava 17 Swing
Java 17 Swing
 
Tutorial master tool versao 11
Tutorial master tool   versao 11Tutorial master tool   versao 11
Tutorial master tool versao 11
 
Apostila labview
Apostila labviewApostila labview
Apostila labview
 

Viewers also liked

12 algoritmos e funcoes recursivas
12   algoritmos e funcoes recursivas12   algoritmos e funcoes recursivas
12 algoritmos e funcoes recursivasRicardo Bolanho
 
Mini Curso - Programação de Interfaces Gráficas - aula 4
Mini Curso - Programação de Interfaces Gráficas - aula 4Mini Curso - Programação de Interfaces Gráficas - aula 4
Mini Curso - Programação de Interfaces Gráficas - aula 4Carlos Eduardo
 
Mini Curso - Programação de Interfaces Gráficas - aula extra persistência
Mini Curso - Programação de Interfaces Gráficas - aula extra persistênciaMini Curso - Programação de Interfaces Gráficas - aula extra persistência
Mini Curso - Programação de Interfaces Gráficas - aula extra persistênciaCarlos Eduardo
 
Mini Curso - Programação de Interfaces Gráficas - aula 3
Mini Curso - Programação de Interfaces Gráficas - aula 3Mini Curso - Programação de Interfaces Gráficas - aula 3
Mini Curso - Programação de Interfaces Gráficas - aula 3Carlos Eduardo
 
Programação Orientada a Objetos - Pós Graduação - Aula 5 - refactoring com ho...
Programação Orientada a Objetos - Pós Graduação - Aula 5 - refactoring com ho...Programação Orientada a Objetos - Pós Graduação - Aula 5 - refactoring com ho...
Programação Orientada a Objetos - Pós Graduação - Aula 5 - refactoring com ho...Carlos Eduardo
 
Programação Orientada a Objetos - Pós Graduação - Aula 2
Programação Orientada a Objetos - Pós Graduação - Aula 2Programação Orientada a Objetos - Pós Graduação - Aula 2
Programação Orientada a Objetos - Pós Graduação - Aula 2Carlos Eduardo
 
Programação Orientada a Objetos - Pós Graduação - Aula 7 - Inversão de Controle
Programação Orientada a Objetos - Pós Graduação - Aula 7 - Inversão de ControleProgramação Orientada a Objetos - Pós Graduação - Aula 7 - Inversão de Controle
Programação Orientada a Objetos - Pós Graduação - Aula 7 - Inversão de ControleCarlos Eduardo
 
Programação Orientada a Objetos - Pós Graduação - Aula 8 - Bad Smells & Desig...
Programação Orientada a Objetos - Pós Graduação - Aula 8 - Bad Smells & Desig...Programação Orientada a Objetos - Pós Graduação - Aula 8 - Bad Smells & Desig...
Programação Orientada a Objetos - Pós Graduação - Aula 8 - Bad Smells & Desig...Carlos Eduardo
 
Mini Curso - Programação de Interfaces Gráficas - aula 1
Mini Curso - Programação de Interfaces Gráficas - aula 1Mini Curso - Programação de Interfaces Gráficas - aula 1
Mini Curso - Programação de Interfaces Gráficas - aula 1Carlos Eduardo
 

Viewers also liked (20)

Recursividade
RecursividadeRecursividade
Recursividade
 
12 algoritmos e funcoes recursivas
12   algoritmos e funcoes recursivas12   algoritmos e funcoes recursivas
12 algoritmos e funcoes recursivas
 
Recursividade
RecursividadeRecursividade
Recursividade
 
Pged 07
Pged 07Pged 07
Pged 07
 
MySQL #06 - Modificando Estrutura ALTER TABLE
MySQL #06 - Modificando Estrutura ALTER TABLEMySQL #06 - Modificando Estrutura ALTER TABLE
MySQL #06 - Modificando Estrutura ALTER TABLE
 
Curso MySQL #07 - Manipulando Registros DELETE UPDATE
Curso MySQL #07 - Manipulando Registros DELETE UPDATECurso MySQL #07 - Manipulando Registros DELETE UPDATE
Curso MySQL #07 - Manipulando Registros DELETE UPDATE
 
Curso MySQL #05 - Inserindo Dados INSERT INTO
Curso MySQL #05 - Inserindo Dados INSERT INTOCurso MySQL #05 - Inserindo Dados INSERT INTO
Curso MySQL #05 - Inserindo Dados INSERT INTO
 
Curso MySQL #04 - Melhorando banco de dados
Curso MySQL #04 - Melhorando banco de dadosCurso MySQL #04 - Melhorando banco de dados
Curso MySQL #04 - Melhorando banco de dados
 
Curso de Java #12 - Estruturas de Repetição (Parte 2)
Curso de Java #12 - Estruturas de Repetição (Parte 2)Curso de Java #12 - Estruturas de Repetição (Parte 2)
Curso de Java #12 - Estruturas de Repetição (Parte 2)
 
Curso de Java #13 - Estruturas de Repetição (Parte 3)
Curso de Java #13 - Estruturas de Repetição (Parte 3)Curso de Java #13 - Estruturas de Repetição (Parte 3)
Curso de Java #13 - Estruturas de Repetição (Parte 3)
 
Curso MySQL #03 - Criando um Banco de Dados MySQL
Curso MySQL #03 - Criando um Banco de Dados MySQLCurso MySQL #03 - Criando um Banco de Dados MySQL
Curso MySQL #03 - Criando um Banco de Dados MySQL
 
php 01 introducao
php 01 introducaophp 01 introducao
php 01 introducao
 
Mini Curso - Programação de Interfaces Gráficas - aula 4
Mini Curso - Programação de Interfaces Gráficas - aula 4Mini Curso - Programação de Interfaces Gráficas - aula 4
Mini Curso - Programação de Interfaces Gráficas - aula 4
 
Mini Curso - Programação de Interfaces Gráficas - aula extra persistência
Mini Curso - Programação de Interfaces Gráficas - aula extra persistênciaMini Curso - Programação de Interfaces Gráficas - aula extra persistência
Mini Curso - Programação de Interfaces Gráficas - aula extra persistência
 
Mini Curso - Programação de Interfaces Gráficas - aula 3
Mini Curso - Programação de Interfaces Gráficas - aula 3Mini Curso - Programação de Interfaces Gráficas - aula 3
Mini Curso - Programação de Interfaces Gráficas - aula 3
 
Programação Orientada a Objetos - Pós Graduação - Aula 5 - refactoring com ho...
Programação Orientada a Objetos - Pós Graduação - Aula 5 - refactoring com ho...Programação Orientada a Objetos - Pós Graduação - Aula 5 - refactoring com ho...
Programação Orientada a Objetos - Pós Graduação - Aula 5 - refactoring com ho...
 
Programação Orientada a Objetos - Pós Graduação - Aula 2
Programação Orientada a Objetos - Pós Graduação - Aula 2Programação Orientada a Objetos - Pós Graduação - Aula 2
Programação Orientada a Objetos - Pós Graduação - Aula 2
 
Programação Orientada a Objetos - Pós Graduação - Aula 7 - Inversão de Controle
Programação Orientada a Objetos - Pós Graduação - Aula 7 - Inversão de ControleProgramação Orientada a Objetos - Pós Graduação - Aula 7 - Inversão de Controle
Programação Orientada a Objetos - Pós Graduação - Aula 7 - Inversão de Controle
 
Programação Orientada a Objetos - Pós Graduação - Aula 8 - Bad Smells & Desig...
Programação Orientada a Objetos - Pós Graduação - Aula 8 - Bad Smells & Desig...Programação Orientada a Objetos - Pós Graduação - Aula 8 - Bad Smells & Desig...
Programação Orientada a Objetos - Pós Graduação - Aula 8 - Bad Smells & Desig...
 
Mini Curso - Programação de Interfaces Gráficas - aula 1
Mini Curso - Programação de Interfaces Gráficas - aula 1Mini Curso - Programação de Interfaces Gráficas - aula 1
Mini Curso - Programação de Interfaces Gráficas - aula 1
 

Similar to Exercicios - Java Swing Listeners

Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao javaArmando Daniel
 
Apostila php avancado
Apostila php avancadoApostila php avancado
Apostila php avancadoTiago Pereira
 
Demoiselle Behave - Parte 3
Demoiselle Behave - Parte 3Demoiselle Behave - Parte 3
Demoiselle Behave - Parte 3Vanderson Silva
 
Exercícios de programação orientado a objeto
Exercícios de programação orientado a objetoExercícios de programação orientado a objeto
Exercícios de programação orientado a objetoGleyciana Garrido
 
Global tecnol s.a – tecnologias ads - backend - web - mobile - devops
Global tecnol s.a – tecnologias   ads - backend - web - mobile - devopsGlobal tecnol s.a – tecnologias   ads - backend - web - mobile - devops
Global tecnol s.a – tecnologias ads - backend - web - mobile - devopsHELENO FAVACHO
 
Utiizando o Celular no Apoio à Gerência de configuração
Utiizando o Celular no Apoio à Gerência de configuraçãoUtiizando o Celular no Apoio à Gerência de configuração
Utiizando o Celular no Apoio à Gerência de configuraçãoJaguaraci Silva
 
Atividade programação script 3
Atividade programação script 3Atividade programação script 3
Atividade programação script 3Rtec Informatica
 
Prática de ensino de Linguagem de Programação II
Prática de ensino de Linguagem de Programação IIPrática de ensino de Linguagem de Programação II
Prática de ensino de Linguagem de Programação IIEverson Wolf
 
Introdução a programação para plataforma iOS
Introdução a programação para plataforma iOSIntrodução a programação para plataforma iOS
Introdução a programação para plataforma iOSDevmedia
 
Metodologia e Linguagem de Programação Avançada - Aula 1
Metodologia e Linguagem de Programação Avançada - Aula 1Metodologia e Linguagem de Programação Avançada - Aula 1
Metodologia e Linguagem de Programação Avançada - Aula 1Thyago Maia
 

Similar to Exercicios - Java Swing Listeners (20)

Tutorial Java: Interface
Tutorial Java: InterfaceTutorial Java: Interface
Tutorial Java: Interface
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao java
 
Java swingcomponentes
Java swingcomponentesJava swingcomponentes
Java swingcomponentes
 
Apostila php avancado
Apostila php avancadoApostila php avancado
Apostila php avancado
 
Apostila php avancado
Apostila php avancadoApostila php avancado
Apostila php avancado
 
Internacionalizacao
InternacionalizacaoInternacionalizacao
Internacionalizacao
 
Tutorial Java: Herança
Tutorial Java: HerançaTutorial Java: Herança
Tutorial Java: Herança
 
Demoiselle Behave - Parte 3
Demoiselle Behave - Parte 3Demoiselle Behave - Parte 3
Demoiselle Behave - Parte 3
 
Tutorial java swing
Tutorial java swingTutorial java swing
Tutorial java swing
 
Visualg2_manual.pdf
Visualg2_manual.pdfVisualg2_manual.pdf
Visualg2_manual.pdf
 
Exercícios de programação orientado a objeto
Exercícios de programação orientado a objetoExercícios de programação orientado a objeto
Exercícios de programação orientado a objeto
 
Global tecnol s.a – tecnologias ads - backend - web - mobile - devops
Global tecnol s.a – tecnologias   ads - backend - web - mobile - devopsGlobal tecnol s.a – tecnologias   ads - backend - web - mobile - devops
Global tecnol s.a – tecnologias ads - backend - web - mobile - devops
 
Apostila: Netbeans
Apostila: NetbeansApostila: Netbeans
Apostila: Netbeans
 
Mock Objects
Mock ObjectsMock Objects
Mock Objects
 
Utiizando o Celular no Apoio à Gerência de configuração
Utiizando o Celular no Apoio à Gerência de configuraçãoUtiizando o Celular no Apoio à Gerência de configuração
Utiizando o Celular no Apoio à Gerência de configuração
 
Atividade programação script 3
Atividade programação script 3Atividade programação script 3
Atividade programação script 3
 
Prática de ensino de Linguagem de Programação II
Prática de ensino de Linguagem de Programação IIPrática de ensino de Linguagem de Programação II
Prática de ensino de Linguagem de Programação II
 
Introdução a programação para plataforma iOS
Introdução a programação para plataforma iOSIntrodução a programação para plataforma iOS
Introdução a programação para plataforma iOS
 
Python Interface Gráfica Tkinter
Python Interface Gráfica TkinterPython Interface Gráfica Tkinter
Python Interface Gráfica Tkinter
 
Metodologia e Linguagem de Programação Avançada - Aula 1
Metodologia e Linguagem de Programação Avançada - Aula 1Metodologia e Linguagem de Programação Avançada - Aula 1
Metodologia e Linguagem de Programação Avançada - Aula 1
 

More from Daniel Arndt Alves (20)

Sessao
SessaoSessao
Sessao
 
Variaveis Superglobais
Variaveis SuperglobaisVariaveis Superglobais
Variaveis Superglobais
 
Programacao Modular
Programacao ModularProgramacao Modular
Programacao Modular
 
Strings, Arrays e Manipulação Datas em PHP
Strings, Arrays e Manipulação Datas em PHPStrings, Arrays e Manipulação Datas em PHP
Strings, Arrays e Manipulação Datas em PHP
 
Introducao ao PHP
Introducao ao PHPIntroducao ao PHP
Introducao ao PHP
 
Arquitetura web
Arquitetura webArquitetura web
Arquitetura web
 
HTML Básico
HTML BásicoHTML Básico
HTML Básico
 
Histórico de Participação do Mackenzie na Maratona de Programação
Histórico de Participação do Mackenzie na Maratona de ProgramaçãoHistórico de Participação do Mackenzie na Maratona de Programação
Histórico de Participação do Mackenzie na Maratona de Programação
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Selection Sort
Selection SortSelection Sort
Selection Sort
 
Insertion Sort
Insertion SortInsertion Sort
Insertion Sort
 
Bubble Sort
Bubble SortBubble Sort
Bubble Sort
 
Análise de Algoritmos
Análise de AlgoritmosAnálise de Algoritmos
Análise de Algoritmos
 
Java RMI
Java RMIJava RMI
Java RMI
 
Java Platform, Enterprise Edition
Java Platform, Enterprise EditionJava Platform, Enterprise Edition
Java Platform, Enterprise Edition
 
Conceitos Básicos de Objetos Distribuidos
Conceitos Básicos de Objetos DistribuidosConceitos Básicos de Objetos Distribuidos
Conceitos Básicos de Objetos Distribuidos
 
Gerenciadores de Layout
Gerenciadores de LayoutGerenciadores de Layout
Gerenciadores de Layout
 
Hiearquia Window
Hiearquia WindowHiearquia Window
Hiearquia Window
 
Java AWT
Java AWTJava AWT
Java AWT
 
Java Swing
Java SwingJava Swing
Java Swing
 

Exercicios - Java Swing Listeners

  • 1. UNIVERSIDADE PRESBITERIANA MACKENZIE FACULDADE DE COMPUTAÇÃO E INFORMÁRICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO Disciplina: Linguagem de Programação 2 Campus Higienópolis: Rua da Consolação, 896 l Consolação l São Paulo - SP l CEP 01302-907 Tel. (11) 2114-8000 Fax (11) 3214 - 3102 l http://www.mackenzie.br e-mail: sistemasdeinformacao@mackenzie.com.br Lista de Exercícios #02 Descrição: Componentes GUI (Java AWT e Java Swing). Responda os exercícios de acordo com a figura abaixo. OBS: Essa janela foi implementada na Lista #01. 1) Utilize o método windowOpened() da interface WindowListener, para exibir a caixa de diálogo abaixo no momento em que o usuário abrir a aplicação. a. Dentro do construtor da classe Janela, faça uma chamada ao método addWindowListener(). Esse método adiciona um “ouvinte” a sua Janela.
  • 2. UNIVERSIDADE PRESBITERIANA MACKENZIE FACULDADE DE COMPUTAÇÃO E INFORMÁRICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO Disciplina: Linguagem de Programação 2 Campus Higienópolis: Rua da Consolação, 896 l Consolação l São Paulo - SP l CEP 01302-907 Tel. (11) 2114-8000 Fax (11) 3214 - 3102 l http://www.mackenzie.br e-mail: sistemasdeinformacao@mackenzie.com.br b. Dentro do parâmetro do método addWindowListener() crie uma classe do tipo java.awt.event.WindowAdapter c. Dentro da classe WindowAdapter, sobrescreva o método windowOpened() da interface WindowListener d. Dentro desse método, faça uma chamada para qualquer método da classe Janela. Veja o exemplo abaixo: addWindowListener(new WindowAdapter() { @Override public void windowOpened(WindowEvent evt) { /* Coloque aqui o nome do método que deverá ser chamado no momento em que a "Janela" for aberta. */ } }); e. Dentro desse método, você deve criar uma caixa de diálogo (JOptionPane) para exibir a mensagem na tela. Veja o exemplo abaixo: JOptionPane.showMessageDialog(this, "Universidade Presbiteriana Mackenzie!", "Linguagem de Programação II", JOptionPane.INFORMATION_MESSAGE); 2) Utilize o método windowClosing() da interface WindowListener, para exibir a caixa de diálogo abaixo no momento em que o usuário fechar a aplicação.
  • 3. UNIVERSIDADE PRESBITERIANA MACKENZIE FACULDADE DE COMPUTAÇÃO E INFORMÁRICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO Disciplina: Linguagem de Programação 2 Campus Higienópolis: Rua da Consolação, 896 l Consolação l São Paulo - SP l CEP 01302-907 Tel. (11) 2114-8000 Fax (11) 3214 - 3102 l http://www.mackenzie.br e-mail: sistemasdeinformacao@mackenzie.com.br a. Dentro da classe WindowAdapter (criada anteriormente), sobrescreva o método windowClosing() da interface WindowListener b. Dentro desse método, faça uma chamada para qualquer método da classe Janela onde será exibida a caixa de diálogo acima. 3) A janela contém seis caixas de textos (jtfAgencia, jtfConta, jtfNome, jtfEndereco, jtfTelefone e jtfCpf). No momento em que o usuário ativar algum desses componentes, a cor do componente selecionado será alterado para amarelo. No momento em que o usuário sair do componente, a cor deve voltar a ser branca. Para isso, implemente a lógica abaixo em todos os componentes citados anteriormente. a. Dentro do construtor da classe Janela, após definir o tamanho e a posição de cada JTextField, faça uma chamada ao método addFocusListener() a partir do componente criado. Esse método adiciona um “ouvinte” que gerencia os focus do seu componente. b. Dentro do parâmetro do método addFocusListener() crie uma classe do tipo java.awt.event.FocusAdapter c. Dentro da classe FocusAdapter, sobrescreva o método focusGained() da interface FocusListener
  • 4. UNIVERSIDADE PRESBITERIANA MACKENZIE FACULDADE DE COMPUTAÇÃO E INFORMÁRICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO Disciplina: Linguagem de Programação 2 Campus Higienópolis: Rua da Consolação, 896 l Consolação l São Paulo - SP l CEP 01302-907 Tel. (11) 2114-8000 Fax (11) 3214 - 3102 l http://www.mackenzie.br e-mail: sistemasdeinformacao@mackenzie.com.br d. Dentro desse método, faça uma chamada para qualquer método da classe Janela. Veja o exemplo abaixo: jtfNome.addFocusListener(new FocusAdapter() { @Override public void focusGained(FocusEvent evt) { /* Coloque aqui o nome do método que deverá ser chamado no momento em que o componente ganhar focus. */ } }); e. Dentro desse método, você deve alterar a cor do componente selecionado pelo usuário: jtfNome.setBackground(Color.YELLOW); f. Essa mesma lógica deve ser utilizada para gerenciar quando o componente perde o focus. Dentro da classe FocusAdapter (criada anteriormente), sobrescreva o método focusLost() da interface FocusListener g. Dentro desse método, faça uma chamada para qualquer método da classe Janela onde será alterada a cor do componente, através do código abaixo: jtfNome.setBackground(Color.WHITE);
  • 5. UNIVERSIDADE PRESBITERIANA MACKENZIE FACULDADE DE COMPUTAÇÃO E INFORMÁRICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO Disciplina: Linguagem de Programação 2 Campus Higienópolis: Rua da Consolação, 896 l Consolação l São Paulo - SP l CEP 01302-907 Tel. (11) 2114-8000 Fax (11) 3214 - 3102 l http://www.mackenzie.br e-mail: sistemasdeinformacao@mackenzie.com.br h. O resultado dessa implementação deve ser parecida com o exemplo abaixo: 4) As caixas de textos jtfAgencia, jtfConta, jtfTelefone e jtfCpf são todas numéricas. Desse modo, adicione aos componentes uma máscara para permitir que somente caracteres numéricos sejam digitados pelo usuário. Já que estamos trabalhando com máscaras, vamos formatar o texto digitado pelo usuário. a. A classe que controla as máscaras das caixas de texto é a javax.swing.text.MaskFormatter. A classe MaskFormatter contém um construtor alternativo que recebe uma String com a máscara formatada. Por exemplo, para criar uma máscara para o CPF devemos criar o objeto com a String: "###.###.###-##" b. A máscara não pode ser aplicada diretamente em objetos do tipo JTextField. Mantenha a declaração das caixas de texto como JTextField, porém as instâncias criadas para esses objetos serão do tipo JFormattedTextField (polimorfismo).
  • 6. UNIVERSIDADE PRESBITERIANA MACKENZIE FACULDADE DE COMPUTAÇÃO E INFORMÁRICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO Disciplina: Linguagem de Programação 2 Campus Higienópolis: Rua da Consolação, 896 l Consolação l São Paulo - SP l CEP 01302-907 Tel. (11) 2114-8000 Fax (11) 3214 - 3102 l http://www.mackenzie.br e-mail: sistemasdeinformacao@mackenzie.com.br c. O componente jtfAgencia deve ter a seguinte máscara: “####-#” d. O componente jtfConta deve ter a seguinte máscara: “#####-#” e. O componente jtfTelefone deve ter a seguinte máscara: “(0xx##) ####-####” f. O componente jtfCpf deve ter a seguinte máscara: “###.###.###-##” g. O caractere # serve como um coringa, e só pode ser substituído por um caractere numérico h. Para utilizar a classe MaskFormatter é necessário fazer o tratamento de exceção do tipo ParseException. Veja um exemplo abaixo: try { jtfCpf = new JFormattedTextField( new MaskFormatter("###.###.###-##")); } catch (ParseException ex) { }
  • 7. UNIVERSIDADE PRESBITERIANA MACKENZIE FACULDADE DE COMPUTAÇÃO E INFORMÁRICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO Disciplina: Linguagem de Programação 2 Campus Higienópolis: Rua da Consolação, 896 l Consolação l São Paulo - SP l CEP 01302-907 Tel. (11) 2114-8000 Fax (11) 3214 - 3102 l http://www.mackenzie.br e-mail: sistemasdeinformacao@mackenzie.com.br i. O resultado dessa implementação deve ser parecida com o exemplo abaixo: 5) Finalizando essa lista de exercício, vamos adicionar os eventos para componentes do tipo JButton ao nosso projeto. Para isso: a. Utilize o método actionPerformed() da interface ActionListener, para controlar os eventos nos botões jbConsultar, jbAtualizar e jbFechar b. Dentro do construtor da classe Janela, após definir o tamanho, a posição e o atalho de cada JButton, faça uma chamada ao método addActionListener() a partir do componente criado. Esse método adiciona um “ouvinte” que gerencia todos os eventos que o usuário pode provocar nos botões a partir do teclado ou do mouse c. Dentro do parâmetro do método addActionListener() crie uma classe do tipo java.awt.event.ActionListener d. Dentro da classe ActionListener, implemente o método actionPerformed()
  • 8. UNIVERSIDADE PRESBITERIANA MACKENZIE FACULDADE DE COMPUTAÇÃO E INFORMÁRICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO Disciplina: Linguagem de Programação 2 Campus Higienópolis: Rua da Consolação, 896 l Consolação l São Paulo - SP l CEP 01302-907 Tel. (11) 2114-8000 Fax (11) 3214 - 3102 l http://www.mackenzie.br e-mail: sistemasdeinformacao@mackenzie.com.br e. Dentro desse método, faça uma chamada para qualquer método da classe Janela. Veja o exemplo abaixo: jbConsultar.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { /* Coloque aqui o nome do método que deverá ser chamado no momento em que o usuário clicar no botão. */ } }); f. Adicione um evento para o componente jbConsultar, que exiba a caixa de diálogo abaixo caso o usuário não preencha ao menos um dos campos jtfAgencia e jtfConta g. Adicione um evento para o componente jbFechar, que feche a aplicação caso o usuário clique no botão Fechar. Para fechar a aplicação, utilize o comando abaixo: System.exit(0);