• Nenhum resultado encontrado

Eventos

N/A
N/A
Protected

Academic year: 2021

Share "Eventos"

Copied!
30
0
0

Texto

(1)

Tratamento de Eventos

(2)

Tratamento de Eventos

Para implementar a funcionalidade de uma interface gráfica, pode-se

fazer uso de uma repetição sem fim:

Faz algum processamento

Verifica se o mouse foi movido, se algum botão ou alguma

tecla foi pressionada.

Realiza alguma ação se necessário.

Repete o ciclo

Esse tipo de programação é considerado extremamente

ineficiente, pois é necessário explicitamente “ler” os

(3)

Tratamento de Eventos

Dessa forma, o programa

perde muito tempo

fazendo essas leituras

Em um

sistema multitarefa

,

esse tipo de

implementação seria

inviável, pois os demais

processos ficariam muito

tempo parados

(4)

Tratamento de Eventos

A interface gráfica em Java é dita orientada a

eventos:

– Cada vez que um usuário clica em um botão,

seleciona um item em uma lista, ou pressiona

uma tecla, o sistema operacional gera um

(5)

Tratamento de Eventos

A interface gráfica em Java é dita orientada a

eventos:

Se uma aplicação está interessada

em um evento específico (por

exemplo, clique em um botão),

deve solicitar ao sistema para

(6)

Tratamento de Eventos

A interface gráfica em Java é dita orientada a

eventos:

– Se a aplicação não está interessada, seu

processamento continua de forma normal.

É importante observar que a aplicação não

espera pela ocorrência de eventos: isso é

controlado pelo sistema

(7)

Tratamento de Eventos

Para que um componente ou container possa

“escutar” eventos, é preciso instalar um

listener

• Listeners

são classes criadas especificamente

para o tratamento de eventos

(8)

Tratamento de Eventos

Há dois tipos de eventos: baixo nível e semânticos.

Eventos de baixo nível

incluem:

– eventos de container (inserção ou remoção de

componente)

– eventos de foco (mouse entrou ou saiu de um

componente)

– eventos de entrada: teclado e mouse

(9)

Tratamento de Eventos

Eventos semânticos

incluem:

– eventos de ação: notificam a ação de um

componente específico (ex: clique em um botão)

– eventos de ajuste: movimento de um scrollbar,

por exemplo

– eventos de item: seleção de um elemento em

uma lista, checkbox, etc

– eventos de texto: alteração do texto em um

JTextArea, JTextField, etc

(10)

Tratamento de Eventos

Como usar

os listeners ?

Listeners são implementados através de interfaces

• Uma interface define um conjunto de métodos que

uma classe deve implementar mas não define como

esses métodos devem ser implementados

• Ou seja, é um modelo de como escrever

(11)

Tratamento de Eventos

Como usar os listeners

?

Não confundir com classes abstratas: as interfaces

não servem para criar novas classes, mas sim para

implementar funcionalidades diversas!

• Uma classe implementa uma ou mais interfaces

• De certa forma, substitui a herança múltipla em Java

• Exemplo: MouseListener - interface para eventos de

(12)

Tratamento de Eventos

Exemplo:

MouseListener - interface para eventos de mouse

– mouseClicked(MouseEvent e)

- chamado quando o botão do mouse é clicado (e solto) sobre um

componente

– mousePressed(MouseEvent e)

- chamado quando o botão do mouse é clicado sobre um componente

– mouseReleased(MouseEvent e)

- chamado quando o botão do mouse é solto sobre um componente

– mouseEntered(MouseEvent e)

- chamado quando o mouse “entra” na área de um componente

– mouseExited(MouseEvent e)

(13)

Tratamento de Eventos

Exemplo: MouseListener - interface para eventos

de mouse

MouseEvent é uma classe que representa eventos de mouse

• Cada listener utiliza uma classe específica para representar o

evento, de acordo com o tipo que será gerado

(14)

Tratamento de Eventos

• Exemplo de utilização

:

cada clique em um botão deverá

incrementar um contador na tela

(15)
(16)
(17)

Tratamento de Eventos

Classe ActionEvent:

– método

getActionCommand()

- retorna o rótulo do botão

(String), por default

– método

getSource()

-

retorna uma referência ao

Component que gerou o evento (no caso, um JButton)

(18)

Tratamento de Eventos

(19)

Tratamento de Eventos

Exercícios : Eventos do Java – Swing/AWT

Prof. Maurício Nacib Pontuschka

14 de junho de 2006

(20)

Tratamento de Eventos

Exercício 1

Construa a tela

Utilizando os objetos:

tela

:JFrame

painel :JPanel

botao

:JButton

1ª forma:

Utilizando um objeto separado da classe da aplicação para a Janela

(JFrame)

(21)

Tratamento de Eventos

Exercício 1

Construa a tela

Utilizando os objetos:

tela

:JFrame

painel :JPanel

botao

:JButton

2ª forma:

Utilizando um objeto único para a aplicação e para a Janela (TesteAcao é um

JFrame)

(22)

Tratamento de Eventos

Exercício 2

1ª forma:

Utilizando um objeto separado da classe da aplicação para ser o ouvidor de

eventos da janela (ActionListener)

Ativar um método no momento

em que o usuário clica no

botão

Criar um objeto ouvidor

(

“Listener”)

(ao clicar no botão a

(23)

Tratamento de Eventos

Exercício 2

1ª forma:

Utilizando um objeto separado da classe da aplicação para ser o ouvidor

de eventos da janela (ActionListener)

Ativar um método no momento em que o usuário clica no botão

Criar um objeto ouvidor (

“Listener”)

(24)

Tratamento de Eventos

Exercício 2

2ª forma:

Utilizando o próprio

objeto da classe da

aplicação para ser o

ouvidor de eventos da

janela (ActionListener)

(25)

Tratamento de Eventos

Exercício 3

Incluindo um novo

botão na tela

import javax.swing.*;

import java.awt.*;

(26)

Tratamento de Eventos

Exercício 4

Identificando o botão

pressionado através do

seu texto

import javax.swing.*;

(27)

Tratamento de Eventos

Exercício 3

Incluindo um novo botão

na tela

import javax.swing.*;

import java.awt.*;

(28)

Tratamento de Eventos

Exercício 5

Identificando o botão

pressionado através da

referência dos objetos de

tela. Este tipo de

diferenciação é mais

eficaz uma vez que

mesmo que os botões

tenham o mesmo texto o

software consegue

identificar qual deles foi

acionado.

(29)

Tratamento de Eventos

Exercício 5

Identificando o botão

pressionado através da

referência dos objetos de

tela. Este tipo de

diferenciação é mais

eficaz uma vez que

mesmo que os botões

tenham o mesmo texto o

software consegue

identificar qual deles foi

acionado.

import javax.swing.*;

import java.awt.*;

(30)

Tratamento de Eventos

Referências

Documentos relacionados

Estes modelos podem ser utilizados como amplificadores de potência para executar programas de celulares, MP3 Players e similares, desde que tais aparelhos sejam projetados para

1. A delimitação da plataforma continental entre Estados com costas adjacentes ou situadas frente a frente deve ser feita por acordo, de conformidade com o

ATRACÇÃO ATRACÇÃO atractividade dos atractividade dos membros, do chefe membros, do chefe identificação identificação espírito de equipa espírito de equipa efectividade

Trata-se, segundo Sidney Chalhoub, do predomínio da ideologia do paternalismo, entre os anos de 1850 e 1860, que se pode definir como sendo uma política de domínio na qual a

O DIRETOR GERAL DO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA GOIANO - CAMPUS IPORÁ, no uso de suas atribuições legais, conferida pela Portaria/IF Goiano nº 22,

(1991), em bovinos, um cisto ovariano é definido como um folículo anovulatório, com diâmetro superior a 25mm, que persiste nos ovários por mais de 10 dias sem a presença de um

Phil não tinha mais nada a dizer, mas Andy estava certo de que seu amigo havia plantado uma semente em sua cabeça.. E seu objetivo imediato tinha sido atingido:

A inovação é, portanto, a estratégia das empresas mais bem-sucedidas, e a inovação de valor, faz com que a empresa migre seu foco, deslocando-o da questão de superar seus