PROGRAMAÇÃO ORIENTADA A OBJETOS Aula 4- Tratamento de ...lncc.br/~rogerio/poo/07-Tratamento de...

12
PROGRAMAÇÃO ORIENTADA A OBJETOS Aula 4- Tratamento de Eventos em Interfaces Gráficas

Transcript of PROGRAMAÇÃO ORIENTADA A OBJETOS Aula 4- Tratamento de ...lncc.br/~rogerio/poo/07-Tratamento de...

Page 1: PROGRAMAÇÃO ORIENTADA A OBJETOS Aula 4- Tratamento de ...lncc.br/~rogerio/poo/07-Tratamento de eventos.pdf · Tratamentos de Eventos em Java Quase todos os componentes propagam

PROGRAMAÇÃO ORIENTADA A OBJETOS

Aula 4- Tratamento de Eventos em Interfaces Gráficas

Page 2: PROGRAMAÇÃO ORIENTADA A OBJETOS Aula 4- Tratamento de ...lncc.br/~rogerio/poo/07-Tratamento de eventos.pdf · Tratamentos de Eventos em Java Quase todos os componentes propagam

TRATAMENTO DE EVENTOS EM INTERFACES GRÁFICAS– AULA4

PROGRAMAÇÃO ORIENTADA A OBJETOS

Conteúdo Programático desta aula

•Manipular de Fontes, cursores, bordas,•Compreender os modelos de tratamentos de eventos•Utilizar os tratamentos de eventos prontos•Manipular com os tratamentos de eventos de janelas•Compreender e manipular o tratamento de eventos de Botões e Menus

Page 3: PROGRAMAÇÃO ORIENTADA A OBJETOS Aula 4- Tratamento de ...lncc.br/~rogerio/poo/07-Tratamento de eventos.pdf · Tratamentos de Eventos em Java Quase todos os componentes propagam

TRATAMENTO DE EVENTOS EM INTERFACES GRÁFICAS– AULA4

PROGRAMAÇÃO ORIENTADA A OBJETOS

Tratamentos de Eventos em JavaQuase 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. Para ligar o código do tratamento de eventos ao componente 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.

Page 4: PROGRAMAÇÃO ORIENTADA A OBJETOS Aula 4- Tratamento de ...lncc.br/~rogerio/poo/07-Tratamento de eventos.pdf · Tratamentos de Eventos em Java Quase todos os componentes propagam

TRATAMENTO DE EVENTOS EM INTERFACES GRÁFICAS– AULA4

PROGRAMAÇÃO ORIENTADA A OBJETOS

Funcionamento do tratamento de eventos

•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 (ex. botão pressionado), o componente percorre a lista e invoca, para cada elemento, o método definido na interface XXListener.  

Page 5: PROGRAMAÇÃO ORIENTADA A OBJETOS Aula 4- Tratamento de ...lncc.br/~rogerio/poo/07-Tratamento de eventos.pdf · Tratamentos de Eventos em Java Quase todos os componentes propagam

TRATAMENTO DE EVENTOS EM INTERFACES GRÁFICAS– AULA4

PROGRAMAÇÃO ORIENTADA A OBJETOS

Hierarquia dos Eventos

Page 6: PROGRAMAÇÃO ORIENTADA A OBJETOS Aula 4- Tratamento de ...lncc.br/~rogerio/poo/07-Tratamento de eventos.pdf · Tratamentos de Eventos em Java Quase todos os componentes propagam

TRATAMENTO DE EVENTOS EM INTERFACES GRÁFICAS– AULA4

PROGRAMAÇÃO ORIENTADA A OBJETOS

AÇÃO DO USUÁRIO Evento disparado LISTENER

Clicar em um botão - JButton ActionEvent ActionListener

Abrir, minimizar ou fechar uma janela - JFrame

WindowEvent WindowListener

Clicar em um componente - JComponent MouseEvent MouseListener

Alteração de texto em um campo de texto - JTextField

TextEvent TextListener

Digitar uma tecla KeyEvent KeyListener

Clicar em um item de escolha - Checkbox ItemEvent ItemListener

Eventos Prontos

Page 7: PROGRAMAÇÃO ORIENTADA A OBJETOS Aula 4- Tratamento de ...lncc.br/~rogerio/poo/07-Tratamento de eventos.pdf · Tratamentos de Eventos em Java Quase todos os componentes propagam

TRATAMENTO DE EVENTOS EM INTERFACES GRÁFICAS– AULA4

PROGRAMAÇÃO ORIENTADA A OBJETOS

Exercício

Vamos implementar um programa simples para incrementar um valor numérico. Quando apertamos o botão Incrementar, o valor incrementa e quando apertamos o botão Zerar, o valor volta para zero.Para isso, precisamos de um JFrame, dentro dele teremos um JLabel, um JTextField e dois JButton.

Page 8: PROGRAMAÇÃO ORIENTADA A OBJETOS Aula 4- Tratamento de ...lncc.br/~rogerio/poo/07-Tratamento de eventos.pdf · Tratamentos de Eventos em Java Quase todos os componentes propagam

TRATAMENTO DE EVENTOS EM INTERFACES GRÁFICAS– AULA4

PROGRAMAÇÃO ORIENTADA A OBJETOS

A Interface ActionListener

Esta interface disponibiliza o tratamento através do método ActionPerformed.Este tratamento é feito da seguinte forma:Adicionamos o ActionListener no objeto em questão;Criamos o objeto que irá tratar este evento, instanciando um objeto ActionListener para implementar o método de tratamento;

Implementamos o método actionPerformed, que é o método de tratamento.

jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { trataEventoBt1ActionPerformed(evt); //método trata } });

Page 9: PROGRAMAÇÃO ORIENTADA A OBJETOS Aula 4- Tratamento de ...lncc.br/~rogerio/poo/07-Tratamento de eventos.pdf · Tratamentos de Eventos em Java Quase todos os componentes propagam

TRATAMENTO DE EVENTOS EM INTERFACES GRÁFICAS– AULA4

PROGRAMAÇÃO ORIENTADA A OBJETOS

Interface WindowListener

Métodos Função

windowActivated( WindowEvent e) Invocada quando a janela recebe o foco

windowClosed( WindowEvent e) Invocado quando a janela foi fechada

windowClosing( WindowEvent e) Invocado quando a janela está fechando

windowDeactivated( WindowEvent e) Invocado quando a janela perde o foco

windowDeiconified( WindowEvent e) Invocado quando a janela é maximizada

windowIconified( WindowEvent e) Invocado quando a janela é minimizada

Page 10: PROGRAMAÇÃO ORIENTADA A OBJETOS Aula 4- Tratamento de ...lncc.br/~rogerio/poo/07-Tratamento de eventos.pdf · Tratamentos de Eventos em Java Quase todos os componentes propagam

TRATAMENTO DE EVENTOS EM INTERFACES GRÁFICAS– AULA4

PROGRAMAÇÃO ORIENTADA A OBJETOS

Interface MouseListener

Métodos Função

mouseClicked( MouseEvent e) Invocada quando o botão é pressionado e solto sobre o componente

mouseEntered( MouseEvent e) Invocado quando o mouse entra na região gráfica do componente

mouseExited( MouseEvent e) Invocado quando o mouse sai da região gráfica do componente

mousePressed( MouseEvent e) Invocado quando o botão do mouse é apertado

mouseReleased( MouseEvent e) Invocado quando o botão do mouse é solto

mouseDragged( MouseEvent e) Invocado quando o mouse se movimenta e o seu botão principal está apertado

Page 11: PROGRAMAÇÃO ORIENTADA A OBJETOS Aula 4- Tratamento de ...lncc.br/~rogerio/poo/07-Tratamento de eventos.pdf · Tratamentos de Eventos em Java Quase todos os componentes propagam

TRATAMENTO DE EVENTOS EM INTERFACES GRÁFICAS– AULA4

PROGRAMAÇÃO ORIENTADA A OBJETOS

Interface MouseMotionListener

Métodos Função

mouseDragged( MouseEvent e) Invocada quando o botão é pressionado e em seguida, movimentado com o componente

mouseMoved( MouseEvent e) Invocado quando o mouse se moveu para a região gráfica do componente sem nenhum dos botões

pressionados

jTextField1.addMouseMotionListener(new java.awt.event.MouseMotionListener() { public void mouseDragged(MouseEvent e) { setMsg("Tentando Mover o componente"); }  public void mouseMoved(MouseEvent e) { setMsg("Movendo o mouse em cima do texto"); } });

Page 12: PROGRAMAÇÃO ORIENTADA A OBJETOS Aula 4- Tratamento de ...lncc.br/~rogerio/poo/07-Tratamento de eventos.pdf · Tratamentos de Eventos em Java Quase todos os componentes propagam

TRATAMENTO DE EVENTOS EM INTERFACES GRÁFICAS– AULA4

PROGRAMAÇÃO ORIENTADA A OBJETOS

FIM