Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
1
Java Eventos
Introdução
A programação de sistemas baseados em interface gráfica
utiliza eventos para acionar elementos gráficos (janelas,
botões, menus etc) e promover a interação das
funcionalidades do sistema com o usuário;
Os eventos são acionados por meio dos elementos gráficos
são de várias formas;
Existem diversos tipos de eventos e, a maneira como são
chamados depende, por exemplo, do elemento gráfico
manipulado, exemplos de acionadores de eventos seriam:
Gerados pelo mouse;
Gerados pelo uso do teclado;
Uso de elementos gráficos (botões, menus, janelas etc).
Como funciona os eventos em Java?
Os principais eventos estão implementados no
pacote java.awt.event;
O pacote event contém diversas classes de interface
que permitem definir diversos eventos para
componentes gráficos de interface;
Fonte do evento Ouvinte registrado
Evento
Ouvinte não
registrado
Modelo de delegação
de evento
Classes de Interface e Eventos
Interface nada mais é do que dispositivo ou sistema
que permite duas entidades interagir entre si;
Exemplos de interface seriam:
Controle remoto de Tvs: permite a um expectador
interagir com a TV;
Linguagem natural: permite a comunicação entre duas
pessoas.
Classes de Interface e Eventos
Uma Interface Java prescreve um comportamento
(funcionalidade) que a classe pode ter;
Classe de interface, de modo geral, é análoga a um
protocolo (prescreve um comportamento).
Em resumo, uma interface Java define um conjunto
de métodos sem, entretanto, implementa-los
(somente o cabeçalho do método). As classes que
“adquirem” (implementam a interface) esses
comportamentos concordam em implementa-los.
Por que as interfaces são úteis?
Interfaces Java são apropriadas quando, por
exemplo, um número de classes compartilham o
mesmo comportamento, porém, a forma como se
comportarão não é a mesma e, desse modo, não
seria apropriado implementar esses
comportamentos por herança.
Todos os veículos aceleram. Mas
aceleram da mesma maneira?
2
Mas sobre Interface Java
Uma interface também pode conter dados
(constantes). Qualquer classe que implementa uma
interface pode usar esses dados constantes;
Dentro da interface qualquer método ou dado é
automaticamente declarado como público;
Qualquer declaração de dados em uma interface são
automaticamente assumidos como final.
O que são eventos?
Programas baseados em janelas são assíncronos,
isto significa que qualquer coisa pode acontecer a
qualquer tempo. Por exemplo, o programa não
“sabe” predizer quando o usuário poderá clicar
sobre um botão;
Por causa disso, programas gráficos são orientados
a eventos (modelo de delegação de eventos), desse
modo, interações realizadas pelo usuário são
passadas para o programa processar;
Como funcionam os eventos?
Basicamente, os eventos trabalham dessa maneira:
Qualquer sistema operacional que suporta GUI (interface
gráfica) monitora eventos tais como clique de mouse,
teclas pressionadas etc;
O sistema operacional informa esses eventos ao programa
que está executando;
O programa decide o que fazer com esses eventos.
Como funcionam os eventos?
O programador precisa construir um número de tratadores
de eventos capaz de processar um tipo particular de evento:
Clique do mouse;
Movimentação do mouse;
Tecla pressionada ...
Uma vez tenha sido definido o tratamento do evento, ele
deve ser registrado para que o máquina virtual Java possa
usa-lo;
Normalmente, cada componente (botão, menu, item de lista,
janela etc) tem um número de tratadores de eventos
associados.
Como funcionam os eventos?
Por exemplo:
Quando um mouse dá entrada em um componente, o
evento “MouseEntered” é gerado;
Logo após a ocorrência do evento, a máquina virtual Java
verifica se o componente, no qual o mouse deu a entrada,
possui um evento registrado para esse tipo de ocorrência;
Havendo o evento de entrada do mouse registrado, é
passado o controle para esse componente e o método
associado é executado.
Modelo de Delegação de Eventos
Como funciona o modelo de delegação de eventos
em Java?
Uma fonte gera um evento e o envia para um ou
mais listeners (ouvintes);
Os listeners precisam ser previamente registrados junto
à fonte do evento, para receber a notificação desta fonte.
3
Hierarquia das classes de eventos
jav
a.u
til.
Ev
en
tO
bje
ct
jav
a.a
wt
.A
W
TE
ve
nt
java.awt.event.AdjustmentEvent
java.awt.event.ComponentEvent
java.awt.event.FocusEvent
java.awt.event.KeyEvent
java.awt.event.MouseEvent
java.awt.event.WindowEvent
java.awt.event.ActionEvent
java.awt.event.ItemEvent
java.awt.event.TextEvent
Hierarquia das classes de eventos
Categoria Eventos Interface
Mouse Arrastar/Soltar o mouse MouseMotionListener
Clique sobre um botão etc MouseListener
Teclado Tecla pressionada KeyListener
Seleção de itens Quando seleciona um item ItemListener
Controle de texto Nova linha em um controle TextListener
Controle Scrolling Quando deslisa a barra de rolagem AdjustmentListener
Botões, menus, etc Quando pressiona ou seleciona ActionListener
Mudanças janela Abrir/fechar/minimizar etc WindowListener
Mudança de foco Tabulação/Enter/Foco FocusListener
Componente Tamanho/esconder/mover ComponentListener
Container Adicionar/mover um componente ContainerListener
interface MouseMotionListener
Métodos:
void mouseDragged ( MouseEvent e ) Invocado quando o botão do mouse épressionado e arrastado.
void mouseMoved ( MouseEvent e )
Invocado quando o mouse é movido
para um componente (sem o botão
estar pressionado).
interface MouseListener
Métodos:
void mouseClicked ( MouseEvent e ) Invocado quando o mouse é clicladosobre um componente.
void mouseEntered ( MouseEvent e ) Invocado quando o mouse foca (entra) em um componente.
void mouseExited ( MouseEvent e ) Invocado quando o mouse tira o foco (sai) de um componente.
void mousePressed (MouseEvent e ) Invocado quando um botão do mouse é pressionado.
void mouseReleased ( MouseEvent e ) Invocado quando o botão do mouse éliberado (solto após pressionado).
interface KeyListener
Métodos:
void keyPressed ( KeyEvent e ) Invocado quando uma tecla épressionada.
void keyReleased ( KeyEvent e ) Invocado quando uma tecla é solta (após ser pressionada).
void keyTyped ( KeyEvent e ) Invocado quando uma tecla épressionada (para capturar a tecla)
interface ItemListener
Métodos:
void itemStateChanged ( ItemEvent e )
Invocado quando o estado de um item
é alterado. Por exemplo, quando um
item de um Radio ou Check mudam.
4
interface TextListener
Métodos:
void textValueChanged ( TextEvent e )
Invocado quando o valor de um objeto
texto é alterado. Por exemplo, mudança
no texto de um JLabel.
interface AdjustmentListener
Métodos:
void adjustmentValueChanged
( AdjustmentEvent e )
Invocado quando o valor de um
componente ajustável (barra de rolagem
por exemplo) é alterado.
interface ActionListener
Métodos:
void actionPerformed ( ActionEvent e )
Invocado quando uma ação ocorre. Por
exemplo: botão pressionado, item de
menu selecionado.
interface WindowListener
Métodos:
void windowActivated ( WindowEvent e ) Invocado quando uma janela é ativada (recebe o foco por exemplo).
void windowClosed ( WindowEvent e ) Invocado quando uma janela é fechada.
void windowClosing ( WindowEvent e ) Invocada quando uma janela estáfechando.
windowDeactivated ( WindowEvent e ) Invocado quando uma janela é desativada (perde o foco por exemplo).
windowDeiconified ( WindowEvent e ) Invocado quando uma janela émaximizada.
void windowIconified ( WindowEvent e ) Invocado quando uma janela éminimizada.
void windowOpened ( WindowEvent e ) Invocado quando uma janela é aberta.
interface FocusListener
Métodos:
void focusGained ( FocusEvent e ) Invocado quando um
componente recebe o foco.
void focusLost ( FocusEvent e ) Invocado quando o componente perde o foco.
interface ComponentListener
Métodos:
void componentHidden
( ComponentEvent e )
Invocado quando o componente é
ocultado.
void componentMoved
( ComponentEvent e )
Invocado quando o componente é
movido.
componentResized
( ComponentEvent e )
Invocado quando as dimensões do
componente são alteradas.
void componentShown
( ComponentEvent e )
Invocado quando o componente é
mostrado após ocultação.
5
interface ContainerListener
Métodos:
void componentAdded
( ContainerEvent e )
Invocado quando um componente é
adicionado ao container.
void componentRemoved
( ContainerEvent e )
Invocado quando um componente é
removido do container.
Exemplo: botão fechar
1. import java.awt.*;
2. import java.awt.event.*;
3. import javax.swing.*;
4. public class BotaoFechar extends JButton implements
ActionListener {
5. public BotaoFechar(){
6. this.setText("Fechar");
7. this.addActionListener(this);
8. }
9. public void actionPerformed(ActionEvent e) {
10. System.exit(0);
11. }
12. }
Obs.: o botão deve ser adicionado a um frame com o método main.
Exemplo: comentários
As linhas 1,2 e 3 importam as classes utilizadas no
código.
A linha 4 declara uma classe chamada BotaoFechar
herdando as características da classe Jbutton. Além
disso implementa a interface ActionListener a qual
possui o método abstrato actionPerformed que deverá
ser implementado.
A linha 5 declara o cabeçalho do método construtor.
A linha 6 define o rótulo do botão;
A linha 7 adiciona a classe ao ouvinte de eventos;
Entre as linhas 9 a 11 é implementado o método abstrato
(actionPerformed) herdado da interface ActionListener.
A linha 10 executa o método exit passando como
argumento zero (para fechar a janela).
Links
http://www2.dm.ufscar.br/~waldeck/curso/java/
http://www.mundooo.com.br
Java Eventos
Introdução
Como funciona os eventos em Java?
Classes de Interface e Eventos
Classes de Interface e Eventos
Por que as interfaces são úteis?
Mas sobre Interface Java
O que são eventos?
Como funcionam os eventos?
Como funcionam os eventos?
Como funcionam os eventos?
Modelo de Delegação de Eventos
Hierarquia das classes de eventos
Hierarquia das classes de eventos
interface MouseMotionListener
interface MouseListener
interface KeyListener
interface ItemListener
interface TextListener
interface AdjustmentListener
interface ActionListener
interface WindowListener
interface FocusListener
interface ComponentListener
interface ContainerListener
Exemplo: botão fechar
Exemplo: comentários
Links