INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

Documentos relacionados
INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

Tratamento de Eventos em Programas com GUI - Graphical User Interface. Jorge H. C. Fernandes UFRN Junho de 2001

Manipulando Eventos em Java

Aula 2 Even e to t s d o M ouse

Arquitetura de Tratamento de Eventos em Programas com GUI - Graphical User Interface

AWT Versus Swing. Java Deployment Course: Aula 5. por Jorge H C Fernandes (jhcf@di.ufpe.br) CESAR-DI-UFPE Recife, 1999

JavaBeans. Java Deployment Course: Aula 8. por Jorge H C Fernandes CESAR-DI-UFPE Recife, 1999

Programação Java. Construção de Interface gráfica. Processo Básico: OO + Eventos. Exemplo

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

Aplicação Linguagem de Programação Orientada a Objeto

TRATAMENTO DE EVENTOS EM JAVA USANDO SWING. George Gomes Cabral

Java AWT Objectos e Eventos. Label Button TextField Checkbox RadioButton Combobox

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 5- Tratamento de Eventos de Manipulação de textos

Introdução Interfaces (revisão) Delegação de eventos Tratamento de eventos Classes Adaptadoras Capturando Eventos nos Componentes Swing

MANIPULAÇÃO DE EVENTOS

Objetivos do Capítulo

Aplicações Gráficas com AWT

Manipulação de Eventos

Aula 12 POO 1 Interface Gráfica no Java. Profa. Elaine Faria UFU

Java Avançado com acesso JDBC a Banco de Dados, Arquivos, Swing e Eventos

JAVA. Marcio de Carvalho Victorino. Interface Gráfica em Java (GUI)

Introdução à Programação Gráfica em Java

Roteiro. Introdução. Uma Introdução à Programação Orientada a Objetos e JAVA usando NetBeans. Objetos. Princípios da Orientação a Objetos

Processo Básico: OO + Eventos. Java First-Tier: Aplicações. Construção de Interface gráfica. Exemplo. Exemplo. Exemplo. Hierarquia de Composição

Aula 2 Eventos do Mouse by Pearson Education do Brasil

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula de Revisão para AV1

AULA 10 - CCT0024 Linguagem de Programação Objetivos da aula. Janelas para leitura e exibição de textos

Swing. Page 1. Swing. Prof. Anderson Augustinho Uniandrade

Adding User Interaction

Curso de Java Módulo II Swing Fábio Mengue Centro de Computação - Unicamp

Arquivos. Prof. Leonardo Barreto Campos 1

Introdução à Tecnologia Java 02/2012. Java Aula 02 15/08/2012. Celso Olivete Júnior.

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Cada categoria de evento exige uma interface apropriada que deve ser implementada pela classe tratadora do evento.

Programação Orientada a Objetos com Java. Prof. Júlio Machado

Como construir aplicaçõ e applets

Prof. Fernando V. Paulovich 25 de julho de SCC Programação Orientada a Objetos

JFrame. JLabel : Utilizado como rótulo para exibição de texto e ícones. Interface Gráfica de JAVA - Graphical User Interface (GUI)

Componentes Parte 02

Programação Gráfica em Java Alguns Componentes javax.swing

Criando interfaces com o usuário. Continuação

Tratamento de Eventos

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

Interface gráfica em Java: Swing e SWT

Prof. Msc. Vladimir Camelo

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Universidade Federal de Uberlândia Faculdade de Computação GGI030 Programação Orientada a Objetos 2o. Semestre de 2017 Prof.

Construção de Interfaces Gráficas

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula de Revisão para AV1

Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça. Padrão Observer (Observador)

Prof. Rogério Albuquerque de Almeida. Programação Orientada a Objetos II Java Nona aula

Componente JOptionPane Layout Null Tratamento de Eventos. Action Listener

TIC - Programação Visual. Componentes. Prof. Edwar Saliba Júnior Setembro de Unidade 14 Componentes 1

Abstract Window Toolkit (AWT) Peer based

Jframe, JDialog ou JApplet

Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça. Padrão Observer (Observador)

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Encerrando Introdução a Objetos e Classes Redefinição de Métodos (1)

Interfaces Gráficas (GUIs) em Java usando Swing Parte I - O básico

2. Competências Desenvolve sistemas com recurso a OOPs Compreede o conceito de programação paralela Implementa programação em redes de computadores

INF1013 MODELAGEM DE SOFTWARE

Módulo 7. Interface Gráfica com o Usuário GUI - Introdução. Programação Orientada a Objetos I Java (Rone Ilídio)

. Uma instância da classe JTextField gera uma instância da classe ActionEvent quando o objecto está activo e o utilizador pressiona a tecla ENTER.

Fundamentos de GUIs. João Carlos Pinheiro. Última Atualização Junho / 2004 Versão: 3.0

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos

Elaborando as Interfaces Aulas 31, 32 e 33

Lista de Exercícios da disciplina Aplicações de Linguagem de Programação Orientada a objetos

Programação Gráfica em Java.

Elaborando Interfaces. Prof. André Aparecido da Silva Disponível em: Aulas 16, 17, e 18

Classe Interna (Inner)

Aplicações de Linguagem de Programação Orientada a Objeto

LSD LSD PICC. Manuela Sousa

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

Construção de Interfaces Gráficas - Introdução

Tecnólogo em Análise e Desenvolvimento de Sistemas

Elaborando as Interfaces dos trabalhos das aulas 28, 29 e 30.

Como tratar eventos - A interface ActionListener e o método actionperformed

Programação Orientada a Objetos. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs

Componentes Parte 01

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Levantamento de classes (Análise de casos de uso)

MODEL-VIEW-CONTROLER. Prof. Fellipe Aleixo

Palavras Reservadas da Linguagem Java

9 Classes Abstractas e Interfaces

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

Adicionados a componentes que possuem o método setjmenubar. tem itens de menu e são inseridos na MenuBar podem funcionar como submenu

Interface Gráfica. LPG II Java Interface Gráfica AWT. Introdução. AWT - Abstract Window Toolkit

Computação II Orientação a Objetos

Model-View-Controller (MVC)

Levantamento de classes (Análise de casos de uso) Prof. Cesar Augusto Tacla

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

Interfaces Gráficas com Swing. Professor Leonardo Larback

Elaborando Interfaces. Prof. André Aparecido da Silva Disponível em: Aulas 16, 17, e 18

INF1013 MODELAGEM DE SOFTWARE

Exercício 1: Criar um programa que utiliza que desenha uma interface gráfica tal como descrito na Figura 1.1.

Orientação a Objetos

Interface Gráfica. Disciplina: Desenvolvimento de Sistemas. Professor: Thiago Silva Prates

Transcrição:

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 12 Orientação a Eventos Tratadores de Eventos Adaptadores 1

Programa Capítulo 12 Orientação a Eventos Tratadores de Eventos Adaptadores Orientação a eventos O funcionamento de um sistema gráfico se dá através de ações sobre diversos elementos da interface; A cada ação correspondem um ou mais eventos, enviados para a fonte geradora dos mesmos (componentes visuais); Estes eventos devem ser identificados e tratados de maneira adequada pelo programa de aplicação. 2

Mecanismo de callback Para que um programa possa tratar um evento gerado na interface com o usuário, ele deve registrar uma função com esse objetivo; Esse mecanismo é chamado de callback, pois a função registrada será chamada de volta pelo runtime da aplicação; O uso de callbacks é ortogonal à orientação a objetos, pois apenas o conceito de função é necessário; Dessa forma, como uma linguagem orientada a objetos pura, como Java, implementa o modelo em questão, uma vez que nesse tipo de linguagem as funções são definidas no escopo de alguma classe (métodos)? Callbacks em Java Como Java é uma linguagem orientada a objetos pura, o mecanismo de callback deve ser implementado através de objetos; Um objeto que implemente um callback é chamado de listener. 3

Programa Capítulo 12 Orientação a Eventos Tratadores de Eventos Adaptadores Listeners e eventos Em Java, um listener é um objeto responsável pelo tratamento de um evento; Um listener é um objeto que implementa uma determinada interface e, por conseguinte, pode tratar vários eventos; Quando um listener tem um de seus métodos chamados, ele recebe um parâmetro que descreve o evento ocorrido; A API nativa do Java fornece várias classes para representar diferentes tipos de eventos. 4

Geração e tratamento de eventos em Java Eventos de interface gráfica Descendentes de java.awt.event.awtevent; Divididos em categorias (pacote java.awt.event): ActionEvent (fonte: componentes de ação); MouseEvent (fonte: componentes afetados pelo mouse); ItemEvent (fonte: checkboxes e similares); AdjustmentEvent (fonte: scrollbars); TextEvent (fonte: componentes de texto); WindowEvent (fonte: janelas); FocusEvent (fonte: componentes em geral); KeyEvent (fonte: componentes afetados pelo teclado). 5

Listeners Cada evento tem uma interface listener correspondente que declara as operações usadas para tratá-lo: ActionEvent: ActionListener; MouseEvent: MouseListener e MouseMotionListener; ItemEvent: ItemListener; AdjustmentEvent: AdjustmentListener; TextEvent: TextListener; WindowEvent: WindowListener; FocusEvent: FocusListener; KeyEvent: KeyListener. Implementação de um listener Para implementar um listener devemos seguir os seguintes passos: Definir a classe (nova ou já existente) que irá implementar a interface do listener adequado; Implementar cada uma das operações declaradas na interface; Instanciar um objeto da classe definida no primeiro passo do processo; Registrar o objeto junto à fonte geradora de eventos. 6

Listener Exemplo import java.awt.*; import java.awt.event.*; import javax.swing.*; public class TratadorInclusao implements ActionListener { Component c; } public TratadorInclusao(Component x) { c=x; } public void actionperformed(actionevent e) { JOptionPane.showMessageDialog(c,"Inclusão Efetuada"); } Ligação do listener à fonte (1) Na ocorrência de um evento, todos os listeners registrados junto à fonte geradora serão notificados; Para isso, é preciso antes registrar os listeners junto ao componente gerador de eventos (fonte): JButton inc=new JButton("Inclui"); inc.addactionlistener(new TratadorInclusao(this)); O objeto gerador de eventos também pode ser o tratador dos seus eventos, desde que a sua classe implemente as interfaces adequadas. 7

Ligação do listener à fonte (2) Alguns eventos, listeners e operações ActionEvent ActionListener actionperformed(actionevent) ItemEvent ItemListener itemstatechanged(itemevent) KeyEvent KeyListener keypressed(keyevent) keyreleased(keyevent) keytyped(keyevent) MouseEvent MouseListener mouseclicked(mouseevent) mouseentered(mouseevent) mouseexited(mouseevent) mousepressed(mouseevent) mousereleased(mouseevent) MouseMotionListener mousedragged(mouseevent) mousemoved(mouseevent) TextEvent TextListener textvaluechanged(textevent) WindowEvent WindowListener windowactivated(windowevent) windowclosed(windowevent) windowclosing(windowevent) windowdeactivated(windowevent) windowdeiconified(windowevent) windowiconified(windowevent) windowopened(windowevent) 8

Listners Operações declaradas (1) Interface ActionListener void actionperformed(actionevent e) acionado quando uma ação ocorre. Interface AdjustmentListener void adjustmentvaluechanged(adjustmentevent e) acionado quando houver mudança no estado de um componente ajustável. Interface ComponentListener void componenthidden(componentevent e) acionado quando um componente se torna invisível; Listners Operações declaradas (2) Interface ComponentListener (cont.) void componentmoved(componentevent e) acionado quando a posição de um componente for alterada; void componentresized(componentevent e) acionado quando as dimensões de um componente forem alteradas; void componentshown(componentevent e) acionado quando um componente se torna visível. Interface ItemListener void itemstatechanged(itemevent e) acionado quando um componente é selecionado ou desmarcado pelo usuário. 9

Listners Operações declaradas (3) Interface FocusListener void focusgained(focusevent e) acionado quando um componente ganha o foco do teclado; void focuslost(focusevent e) acionado quando um componente perde o foco do teclado. Interface TextListener void textvaluechanged(textevent e) acionado quando o valor de um texto for alterado. Listners Operações declaradas (4) Interface KeyListener void keypressed(keyevent e) acionado quando uma tecla for pressionada; void keyreleased(keyevent e) acionado quando uma tecla for liberada; void keytyped(keyevent e) acionado quando uma tecla for digitada. Interface WindowListener void windowactivated(windowevent e) acionado quando um janela for ativada; 10

Listners Operações declaradas (5) Interface WindowListener (cont.) void windowclosed(windowevent e) acionado quando um janela for fechada através de uma chamada ao método dispose(); void windowclosing(windowevent e) acionado quando o usuário tentar fechar uma janela através do system menu; void windowdeactivated(windowevent e) acionado quando um janela for mais a janela ativa; void windowiconified(windowevent e) acionado quando uma janela for minimizada; void windowopened(windowevent e) acionado na primeira vez que uma janela se tornar visível. Programa Capítulo 12 Orientação a Eventos Tratadores de Eventos Adaptadores 11

Adaptadores (1) Em algumas situações pode ser muito enfadonho implementar todas as operações declaradas por um listener; Para evitar trabalho desnecessário, alguns listeners possuem uma classe adaptadora correspondente; A classe adaptadora possui um método com implementação vazia ({ }) vazia para operação declarada na interface; Dessa forma, podemos criar uma subclasse do adaptador e sobrescrever apenas os métodos correspondentes aos eventos que nos interessam. Adaptadores (2) public abstract class MouseAdapter extends Object Implements: MouseListener, MouseWheelListener, MouseMotionListener; public abstract class KeyAdapter extends Object Implements: KeyListener; public abstract class WindowAdapter extends Object Implements: WindowListener, WindowStateListener, WindowFocusListener. 12