Buscar

Aula_08 ppt

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 30 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 30 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 9, do total de 30 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

Prévia do material em texto

Linguagem de 
Programação
Fabiano Gonçalves 
dos Santos
Aula 8
Conteúdo
• Apresentar os conceitos de Listener e os 
tratamentos de eventos
• Apresentar os conceitos de Adapters que 
implementam as interfaces de eventos
• Utilizar interfaces gráficas interagindo com objetos 
e classes previamente definidos com Listeners e 
Adapter;
2
• Evento pode ser considerado como o resultado da 
interação do usuário com algum componente GUI: 
• Mover o mouse, clicá-lo, digitar num campo de 
texto, selecionar um item de menu, fechar uma 
janela, clicar num botão, etc. são interações que 
enviam eventos para o programa, normalmente 
realizando serviços. 
Eventos
3
• Eventos também podem ser gerados em resposta 
a modificações do ambiente. Em outras palavras, 
define-se eventos GUI como mensagens 
(chamadas a métodos) que indicam que o usuário 
do programa interagiu com um dos componentes 
GUI.
• Um sistema orientado a objetos é definido como um 
conjunto de objetos interagindo ou trocando 
mensagens. Os eventos representam as ações dos 
atores neste processo ou alguma resposta a uma 
mudança de estado.
Eventos
4
• Quase todos os componentes propagam eventos. 
Estes eventos devem ser tratados em algum ponto 
do código da aplicação. 
• Os eventos nunca são tratados no próprio 
componente (dado que não se tem acesso ao 
código do componente). 
• Para ligar o código do tratamento de eventos ao 
componente existem, no Java, um conjunto de 
interfaces chamadas listeners. 
Tratamento de eventos
5
• Um listener é uma interface que especifica os 
métodos que uma aplicação deve ter para ser 
notificada da ocorrência de um determinado evento. 
• Os componentes que geram eventos permitem 
que sejam adicionados ou removidos listeners 
em qualquer altura. 
Tratamento de eventos
6
• O modelo de eventos do Java funciona da seguinte 
forma: 
– O componente que produz eventos possui 
métodos especiais do tipo 
addXXListener(XXListener) que permite 
adicionar ou remover listeners. XX representa o 
nome do evento. O método addXXListener
recebe por parâmetro o objeto que implementa a 
interface XXListener; 
Tratamento de eventos
7
– A implementação do método addXXListener no 
componente apenas adiciona o objeto passado 
por parâmetro a uma lista interna. Sempre que 
ocorrer um evento (ex. botão pressionado), 
o componente percorre a lista e invoca, para 
cada elemento, o método definido na interface 
XXListener. 
Tratamento de eventos
8
• São elementos ou componentes que não permitem 
conter outros elementos. 
• No exemplo seguinte é construída uma GUI simples 
com um botão e uma caixa de texto. Sempre que 
o botão é pressionado a aplicação deve escrever 
na caixa de texto um número inteiro aleatório. 
Para processar os eventos é necessário analisar 
os eventos que o botão produz. É preciso saber 
que sempre que um botão é pressionado é criado 
um evento do tipo ActionEvent. 
Tratamento de eventos
9
• Para adicionar listeners, a classe que representa o 
botão (JButton) possui um método chamado 
addActionListener que recebe por parâmetro um 
objeto que implemente a interface ActionListener. 
Na API vê-se que a interface ActionListener 
especifica um método chamado actionPerformed.
Tratamento de eventos
10
• ActionEvent – evento gerado pelo botão quando 
pressionado. Sempre que o botão for pressionado, 
este irá percorrer a sua lista interna de listeners, 
chamando para cada um, o método 
actionPerformed; 
• ActionListener– interface que especifica os objetos 
que tratam eventos do tipo ActionEvent; Existem 
várias soluções possíveis para tratar o evento: 
– Recorrendo à própria classe (GUI) – a aplicação 
gráfica tem de implementar os listeners 
necessários; 
Resumindo
11
– Recorrendo a classes locais – é criada uma 
classe local que implementa os listeners 
necessários; 
– Recorrendo a classes internas – é criada uma 
classe dentro da GUI. A classe interna 
implementa os listeners necessários; 
– Recorrendo a classes anônimas – criam-se 
classes anônimas que implementem os listeners 
dos eventos a tratar. As classes anônimas são 
classes internas especiais; 
Resumindo
1) Utilizando a própria classe 
2) Utilizando uma classe local
3) Utilizando uma classe anônima
12
13
• Utilizando a própria classe:
– EventosGUI_1.java
• Analisando o código, vê-se que é implementada a 
interface ActionListener. Isto é necessário porque 
o evento está sendo tratado na classe que 
representa a GUI. 
Utilizando a própria classe -
Concluindo
14
• Ao indicar que a classe implementa a interface, 
será necessário implementar o método 
actionPerformed. Este método irá conter o código 
responsável pelo tratamento do evento. Contudo, 
para isto tudo funcionar é necessário que a classe 
diga que está interessada em receber eventos 
do botão. A classe declara que está interessada 
em receber eventos, invocando o método 
addActionListener do botão. A partir deste 
momento, sempre que o botão for pressionado, 
este chama o método actionPerformed da 
aplicação gráfica. 
Utilizando a própria classe -
Concluindo
15
• Em resumo: 
– Declara-se a implementação do listener 
apropriado (implements XXListener); 
– Implementa-se o(s) método(s) do listener (a lista 
de métodos varia de evento para evento); 
– Registra-se no componente (addXXlistener).
Utilizando a própria classe -
Concluindo
16
17
• Utilizando uma classe local
– EventosGUI_2.java
– TrataEvento.java
• Em relação à abordagem anterior, utilizando uma 
classe local deixa-se de indicar que a interface 
gráfica implementa a interface ActionListener e 
deixa de ser necessário guardar o atributo referente 
à caixa de texto. Mas foi necessário criar uma 
classe local (não se coloca nenhum modificador) e 
guardar nessa classe a informação necessária para 
tratar o evento. Guarda-se uma referência para a 
caixa de texto onde escreve-se (passada no 
construtor) e cria-se um gerador de números 
aleatórios (deixou de pertencer à classe da 
aplicação gráfica). 
Utilizando uma classe local-
Concluindo
18
• A classe local tem de implementar a interface 
ActionListener. Assim, o método 
actionPerformed passou para esta classe. 
A classe da aplicação gráfica apenas tem de criar 
uma instância da classe local e registrá-la nos 
botões que criou. A vantagem desta abordagem é 
que permite separar o código da aplicação gráfica 
do código que trata os eventos.
Utilizando uma classe local-
Concluindo
19
20
• Utilizando uma classe anônima
– EventosGUI_4.java
• A utilização de classes anônimas para tratar os 
eventos pode parecer complexa e pouco clara. 
• É a mais eficiente quando o código que trata o 
evento é pequeno ou quando possuímos muitos 
componentes. Apesar do exemplo anterior utilizar 
duas classes anônimas, nada impede que se utilize 
a mesma classe anônima para tratar os eventos de 
diversos componentes. A única restrição na 
utilização deste tipo de classes tem a ver com o fato 
de que todas as referências utilizadas dentro da 
classe têm de ser finais ou atributos da própria 
classe. 
Classe anônima - Concluindo
21
• As classes anônimas são muito utilizadas para 
implementar localmente interfaces. A sintaxe típica 
para a construção de uma classe deste tipo é a 
seguinte: 
<NomeDaInterface><nomeDaInstânciaAnônima>= 
new <NomeDaInterface> { 
// implementação dos métodos da interface 
};
Classe anônima - Concluindo
22
• O Swing oferece um conjunto de diálogos simples 
pré-definidos para uso em interações breves com 
o usuário: 
– mensagens de erro, de alerta
– obtenção de uma confirmação 
– entrada de um único campo de texto 
Diálogos Pré-Definidos
23
• Estrutura básica:
JOptionPane
24
• Exibe uma mensagem e aguarda OK do usuário
MessageDialog
25
• Exibe uma mensagem e obtém uma confirmação 
(YES/NO, OK/CANCEL) 
• Conjuntos de botões de opção(optionType): 
• JOptionPane.DEFAULT_OPTION• JOptionPane.YES_NO_OPTION 
• JOptionPane.YES_NO_CANCEL_OPTION 
• JOptionPane.OK_CANCEL_OPTION
ConfirmDialog
26
• Exibe uma mensagem e obtém um valor de entrada 
do usuário 
– Campo texto editável
– Combo box 
InputDialog
27
Linguagem de 
Programação
Fabiano Gonçalves 
dos Santos
Atividade 8
29
Programando …
• Escreva um programa capaz de converter o valor 
em Reais fornecido numa caixa de entrada 
(TextField) em outro valor monetário conforme 
a seleção de uma moeda (no mínimo 3 moedas 
diferentes) numa caixa de seleção (Combo) 
indicando o resultado em um 
rótulo (Label). 
Se necessário adicione botões. 
30
• Veja o programa Atividade8.java!

Continue navegando