Buscar

08 LISTENERS E ADAPTERS

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

- -1
LINGUAGEM DE PROGRAMAÇÃO
LISTENERS E ADAPTERS
- -2
Olá!
Ao final desta aula, você será capaz de:
1. Apresentar os conceitos de listener e os tratamentos de eventos;
2. Apresentar os adapters que implementam as interfaces de eventos;
3. Utilizar interfaces gráficas, interagindo, com objetos e classes previamente definidos, com listeners e adapter;
4. Explorar o conceito de tratamento de eventos em exemplos e exercícios.
1 Eventos
Evento é um acontecimento relevante no meio externo ao sistema relevante. 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 também podem ser gerados em resposta a modificações do ambiente. Em outras palavras, definem-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 nesse processo ou alguma resposta a uma mudança de estado.
- -3
2 Tratamento de eventos
Quase todos os componentes propagam eventos. Esses 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 aos componentes existem, no Java, um conjunto de
interfaces chamadas listeners. 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.
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.
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 (exp.: botão pressionado), o componente percorre a lista e
invoca, para cada elemento, o método definido na interface XXListener.
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.
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.
Resumindo:
- -4
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.
• 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.
3 Diálogos Pré-definidos
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.
4 Classe JOptionPane
Estrutura básica:
•
•
•
•
•
•
•
- -5
5 MessageDialog
Exibe uma mensagem e aguarda OK do usuário:
Exemplo de MessageDialog:
import java.awt.Component;
import javax.swing.*;
package exemplos;
/**
*
* @author Prof. Eduardo Pareto
*/
public class Janela {
private static Component janela;
public static void main(String[] args){
JOptionPane.showMessageDialog(
janela, "Cuidado com as Provas!","Linguagem de Programação",JOptionPane.WARNING_MESSAGE);
}
}
- -6
6 ConfirmDialog
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
Exemplo de ConfirmDialog:
import java.awt.Component;
import javax.swing.*;
package exemplos;
/**
*
* @author Prof. Eduardo Pareto
*/
public class Janela {
private static Component janela;
public static void main(String[] args){
•
•
•
•
- -7
int resp = JOptionPane.showConfirmDialog(janela,
"Você já estudou para as provas?", "Escolha uma opção",JOptionPane.OK_CANCEL_OPTION);
}
}
7 InputDialog
Exibe uma mensagem e obtém um valor de entrada do usuário:
• Campo texto editável
• Combo box
Exemplo de InputDialog:
import java.awt.Component;
import javax.swing.*;
package exemplos;
/**
*
* @author Prof. Eduardo Pareto
*/
public class Janela {
private static Component janela;
public static void main(String[] args){
String nome = JOptionPane.showInputDialog(janela,
"Qual é o seu número de Matrícula",
"Linguagem de Programação",JOptionPane.QUESTION_MESSAGE);
}
}
•
•
- -8
O que vem na próxima aula
Na próxima aula, você estudará os seguintes assuntos:
• Tema: Tratamento de Exceção;
• Apresentar o conceito de tratamento de exceção;
• O comando try catch;
• Throw.
CONCLUSÃO
Nesta aula, você:
• Identificou os conceitos de listeners e os tratamentos de eventos;
• Identificou os conceitos de adapters;
• Criou e manipulou interfaces gráficas com objetos e classes efetuando o tratamento de eventos;
• Associou classes e manipulou objetos associados;
• Desenvolveu e executou pequenos programas com orientação a objetos e tratamento de eventos.
•
•
•
•
•
•
•
•
•
	Olá!
	1 Eventos
	2 Tratamento de eventos
	3 Diálogos Pré-definidos
	4 Classe JOptionPane
	5 MessageDialog
	6 ConfirmDialog
	7 InputDialog
	O que vem na próxima aula
	CONCLUSÃO

Continue navegando