Buscar

2019 1_ProgramaçãoII_aula06

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

25/03/2019
1
PROGRAMAÇÃO II
Aula 06 – Tratamento de eventos para 
interfaces gráficas.
Prof. Ronaldo Candido
posinf_ronaldo@yahoo.com.br 2019.1
AULA 06
PROGRAMAÇÃO II
Prof. Ronaldo Candido
Conteúdo Programático
1. Modelos para tratamento de
eventos;
2. Forma de construção de
tratamento de eventos;
3. Tratamento de conjunto de
eventos comuns ;
4. NetBeans : Exportando e
importando projetos ;
5. Exemplos e exercícios.
25/03/2019
2
AULA 06
PROGRAMAÇÃO II
Prof. Ronaldo Candido
Tratamento de eventos para interfaces gráficas
• Eventos são gerados quando o usuário interage com a interface
gráfica. Exemplos de eventos :
 Clicar em um botão ;
 Selecionar um item de um menu ;
 Arrastar um objeto pela tela ;
 Rolar um texto usando as barras de rolagem ;
 Digitar uma informação em uma caixa de texto ;
 Passar o mouse sobre um objeto ;
 Redimensionar um objeto, etc...
AULA 06
PROGRAMAÇÃO II
Prof. Ronaldo Candido
Tratamento de Eventos - Listeners
• No Java os eventos são tratados por objetos chamados listeners
(ouvintes) ;
• Cada componente registra um objeto que irá receber os
eventos (objeto listener), o que representa uma forma de
delegar tratamento de evento ;
• Os eventos são objetos que são reportados somente aos
listeners registrados ;
• Cada evento tem uma interface Listener associada ;
• O objeto listener usará a informação no objeto evento para
determinar a reação ao evento.
Tela (GUI)
Controles:
botões,
campos, etc.
Listener
Handler
(tratador)
Evento 1
Evento 2
Evento n
25/03/2019
3
AULA 06
PROGRAMAÇÃO II
Prof. Ronaldo Candido
Hierarquia de classes
• Na linguagem Java, as
informações sobre
qualquer tipo de evento
que ocorre são guardadas
em um objeto de uma
classe que estende a
classe AWTEvent ;
• A partir do evento
gerado, trata-se a
Listener, como, por
exemplo, quando o
usuário clica em um
botão, será a
ActionListener.
java.lang.Object
java.util.EventListener
ActionListener
AdjustmentListener
ComponentListener
ContainerListener
ItemListener
KeyListener
WindowListener
TextListener
FocusListener
Nome da Classe
Nome da Interface
Interfaces do Pacote AWT.event
MouseMotionListener
MouseListener
AULA 06
PROGRAMAÇÃO II
Prof. Ronaldo Candido
Modelo para tratamento de eventos
1. Criar uma classe que vai implementar a interface associada
ao evento a ser tratado. Implementar uma interface significa
codificar todos os métodos que são especificados por ela.
Esta interface tem o formato <componente>Listener, por
exemplo, MouseListener, ActionListener, etc... ;
2. Criar um objeto desta classe que foi definida no item
anterior ;
3. Registrar o objeto criado como o tratador de eventos
(handler) de um determinado objeto usando o método
apropriado. Este método tem o formato
add<Componente>Listener ;
4. Codificar o(s) método(s) da interface implementada na
classe correspondente.
25/03/2019
4
AULA 06
PROGRAMAÇÃO II
Prof. Ronaldo Candido
Conhecendo as Listeners
• Interfaces Listeners - pacote : java.awt.event :
 ActionListener - Eventos que representam ação, como por
exemplo, clique no botão da classe JButton.
 ItemListener - Evento no JComboBox e JList.
 KeyListener - Eventos do teclado.
 MouseListener - Eventos de clique com o mouse.
 MouseMotionListener - Eventos de movimentação do mouse.
 WindowListener - Eventos direcionados para a janela de
uma aplicação (fechar, minimizar, maximizar, etc...).
 Exemplo ao pressionar um JButton :
 Método actionPerformed() é chamado na escuta registrada
para o objeto.
AULA 06
PROGRAMAÇÃO II
Prof. Ronaldo Candido
Usando a interface ActionListener
• Para tratar os eventos relacionados aos botões, tais como
JButton, JRadioButton, JCheckBox ou mesmo itens de menu,
deve-se criar classes para manipulação a partir da interface
ActionListener. Esta interface contém apenas um método, o
actionPerformed (ActionEvent e). Ex. :
25/03/2019
5
AULA 06
PROGRAMAÇÃO II
Prof. Ronaldo Candido
Exemplo01 – Tratamento de evento
//MeuFrame.java
public class MeuFrame extends JFrame {
private JButton btnClique;
public MeuFrame() {
super("Testando eventos"); }
public void init() {
this.setSize(300, 150);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation
(JFrame.EXIT_ON_CLOSE);
FlowLayout layout = new FlowLayout();
this.setLayout(layout);
btnClique = new JButton("Clique-me!");
add(btnClique);
//criar novo tratador e registra o botão
EventoFrame handler = new EventoFrame();
btnClique.addActionListener(handler);
} // fim do init()
} // fim da classe
Acrescentar ao final
do método init() após
criar a nova classe
EventoFrame no
pacote controle !!!
AULA 06
PROGRAMAÇÃO II
Prof. Ronaldo Candido
//EventoFrame.java
//classe da interface do ouvinte do evento
public class EventoFrame implements ActionListener {
//método sobrecarregado para o evento
@Override
public void actionPerformed (ActionEvent e) {
//exibir mensagem de quem gerou o evento
JOptionPane.showMessageDialog(null, "Você clicou em :" + e.getActionCommand());
} // fim do método
} //fim da classe
==================================================================================================================================
//classe principal
public class ProgrII_Aula06_Exemplo01 {
public static void main(String[] args) {
MeuFrame mf = new MeuFrame();
mf.init();
mf.setVisible(true); } //fim do main()
} //fim da classe
25/03/2019
6
AULA 06
PROGRAMAÇÃO II
Prof. Ronaldo Candido
Usando classes anônimas
• No exemplo anterior separamos em classes cada etapa do
funcionamento da aplicação, cujos pacotes foram :
visao
MeuFrame
- btnClique
+ init()
controle
EventoFrame
+ actionPerformed()
exemplo01
Exemplo01
+ main()
• Em determinados códigos pode ocorrer uma classe ser interna
a outra, gerando uma classe anônima :
btnClique.addActionListener (new ActionListener() {
public void actionPerformed(ActionEvent evt) {
MeuFrame cadastro = new MeuFrame();
cadastro.setVisible(true); } //fim do actionPerformed()
}); // fim do addActionListener()
AULA 06
PROGRAMAÇÃO II
Prof. Ronaldo Candido
NetBeans : Exportando e importando projetos
• Para exportar um projeto para um arquivo .ZIP :
1. Com o projeto aberto, clicar no menu Arquivo /
Exportar para arquivo / Para .ZIP ;
2. Em ‘Construir ZIP’, indicar o local e nome do arquivo
para compactar (Ex.: projeto01.zip) ;
3. Clicar em Exportar.
• Para importar um projeto de um arquivo .ZIP :
1. Clicar no menu Arquivo / Importar projeto / De .ZIP ;
2. Em ‘Arquivo ZIP’, indicar o local e nome do arquivo
do ZIP;
3. Clicar em Importar.
25/03/2019
7
AULA 06
PROGRAMAÇÃO II
Prof. Ronaldo Candido
Exercício prático
1. Refaça o Exercício02 da Aula02, usando o tratamento de
evento no botão Converter. Ao ser lida a temperatura em
Celsius, aplicar a fórmula abaixo para exibir na caixa
correspondente em Fahrenheit :
Fahrenheit = Celsius / 5 * 9 + 32
AULA 06
PROGRAMAÇÃO II
Prof. Ronaldo Candido
Exercício prático
2. Refaça o Exercício01 da Aula04, usando o tratamento de
evento no botão OK. Ao serem lidas as informações digitadas,
exibir o total poupado usando juros compostos :
Total = Depósito x (1 + juros)anos x 12
25/03/2019
8
AULA 06
PROGRAMAÇÃO II
Prof. Ronaldo Candido
1. DEITEL, H. M.; DEITEL, P. J. Java: Como programar (Biblioteca
virtual). 10. ed. São Paulo: Pearson, 2017.
2. JUNIOR, P. J. Java Guia do Programador. 3. ed. São Paulo:
Novatec, 2015.
3. SANTOS, F. G. Programação orientada a objetos. 1. ed. Rio de
Janeiro: SESES, 2017. Capítulo 3.
4. API dos eventos do AWT: (Acesso em 20/03/19)
https://docs.oracle.com/javase/8/docs/api/java/awt/event/package-summary.html
5. Artigo : Trabalhando com eventos: (Acesso em 20/03/19)
https://www.devmedia.com.br/trabalhando-com-eventos-na-gui-do-java/25898
Bibliografia Básica
Fim da apresentação
Prof. Ronaldo Candido
posinf_ronaldo@yahoo.com.br
Dúvidas, sugestões ou análises ???
PROGRAMAÇÃO II

Outros materiais