• 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

A falha do argumento em defender uma identidade entre eventos físicos e mentais, seja através da versão de Davidson sobre a teoria da superveniência, seja através dos

•Para acessar os aplicativos, pressione rapidamente o botão POWER para escolher a opção desejada e mantenha pressionado por aproximadamente 4 segundos para

Para ligar o refletor, acione através do pedal de comando da cadeira odontologica o botão (02), para modificar a luminosidade, mantenha-o pressionado, a luminosidade

Para ligar o refletor, acione através do pedal de comando da cadeira odontologica o botão (07), para modificar a luminosidade, mantenha-o pressionado, a luminosidade

Atuação no Brasil, Gutierrez (1980) cita como locais de atuação do professor de Educação Física como organizador de atividades as Escolas, através da organização de atividades

Tratamento de Eventos em Redes Elétricas: Uma Ferramenta Campina Grande: 2003.. Dissertação (Mestrado em Informática) - Universidade Federal de Campina Grande

•Para acessar os aplicativos, pressione rapidamente o botão POWER para escolher a opção desejada e mantenha pressionado por aproximadamente 4 segundos para

4.3 Localização e Tipologia dos Eventos Subsequentes Evidenciados Dada à necessidade de evidenciação de eventos que ocorrem entre o fim do exercício social e a data de