0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.

Slides:



Advertisements
Presentaciones similares
Manejo de Eventos Visita FIEC.
Advertisements

Curso de Java Capitulo 7: Continuación Poo Profesor:
Programación Interactiva Eventos y Swing
Lenguaje de programación Java
IGU en Java: Modelo de Eventos
Algoritmo y Estructura de Datos I I Facultad de Ingeniería y Arquitectura Ing. Juan José Montero Román. Sesión 12 - Introducción.
TEMA 1. Diseño de interfaces gráficas
Programación “Conducida por eventos” Event-driven programming Agustín J. González ELO330.
Figure: Lenguajes. Generaciones de lenguajes de programación.
MouseListener y MouseMotionListener SUSANA CAROLINA VILLA TORRES.
Aplicaciones GUI en Java
Polimorfismo Lenguajes de Programación II Corporación Universitaria del Caribe CECAR.
Patrón Observador Un patrón de diseño es una descripción de clases y objetos comunicándose entre si adaptada para resolver un problema de diseño general.
Introducción a Java 2D y LG3D
:: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
Jesús Arellano JMenu.
Manejo de Eventos. Lo básico para manejo de eventos Cuando se realiza una interacción con el programa, se envía un evento. Es fundamental su comprensión.
Interfaces Graficas Profesor: Rodrigo Cruzat. Contenedores La ventana misma, que contiene botones, texto, etc… y donde se realizará la interacción JFrame.
AWT y Swing Existen dos conjuntos basicos de componentes. Para crear aplicaciones graficas o GUI AWT abstract Window Toolkit Swing.
Programación basada en eventos “Event-Based Programming”: Conceptos
1 Programación “Conducida por eventos” Event-driven programming Agustín J. González ELO329/ELO330.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Estructuras.
1 TEMA 1. Diseño de interfaces gráficas 1.Introducción 2.Componentes de la interfaz 3.Programación dirigida por eventos 4.Gestores de ubicación 5.Primitivas.
:: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Genericidad.
Presentado por: PABLO ANDRES DIAZ SAIN HASSAM CAICEDO
Ing. Esp. Ricardo Cújar. SWING  Paquete de Java que permite el desarrollo de interfaces gráficas de usuario.  Api Swing, es sumamente flexible y se.
ELO329: Diseño y Programación Orientados a Objetos
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Polimorfismo.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Abstracción.
22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.1 AWT ABSTRAC WINDOW TOOLKIT.
EVENTOS DEFINICION Evento: Encapsulación de la información que puede ser envada a la aplicación de manera asíncrona Avisan de las acciones de usuario Manejo.
Manejo de Eventos Visita FIEC FIEC. Eventos En evento es una acción iniciada por el usuario. Ejemplo de eventos son: presionar un botón, cambiar un texto,
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Caso.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Tipo.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
M.C. Meliza Contreras González.  Se le llama interfaz gráfica al conjunto de componentes gráficos(ventanas, botones, combos, listas, cajas de dialogo,
1 Programación “Conducida por eventos” Event-driven programming Agustín J. González ELO329/ELO330.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Arreglo.
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
Entorno Gráfico Desacoplar Eventos. Jframe setResizable setTitle setSize setVisible Jpanel Layout GridBack SetBounds Jlabel Jbuttom Jchechbox Jradio.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Asociación.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Objetos.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Objetos.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Herencia.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Dependencia.
Introducción a la Programación Orientada a Objetos (POO) Conceptos de clase, objeto e interfaz. Atributos y métodos Fundamentos de Programación Departamento.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Exception Object Throwable Error Exception Runtime Exception.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Interfaces Gráficas de Usuario
Interfaces Gráficas de Usuario
Interfaces Gráficas de Usuario
Clases Asociadas y encapsulamiento
Interfaces Gráficas de Usuario
Interfaces Gráficas de Usuario
Clases Asociadas y encapsulamiento
Clases Asociadas y encapsulamiento
Transcripción de la presentación:

INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI Objetos y Eventos Dr. Luciano H. Tamargo Depto. de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur, Bahía Blanca 2015

OBJETOS Y EVENTOS Cada componente de una GUI está asociada a un objeto gráfico de alguna subclase de Component. Un objeto fuente del evento, está asociado a una componente reactiva de la GUI, puede percibir un evento externo provocado por una acción del usuario y reaccionar disparando un evento interno. Un objeto evento se crea implícitamente, asociado a un evento interno disparado por un objeto fuente del evento. Un objeto oyente (listener) se registra a un objeto fuente de evento para responder a la acción del usuario sobre una componente de la GUI. Introducción a la Programación Orientada a Objetos IPOO

3 OBJETO FUENTE Component Evento Interno OBJETO EVENTO EventObject percibe dispara crea Evento Externo El usuario realiza una acción sobre una componente reactiva que genera un evento externo El objeto fuente de evento asociado a la componente reactiva dispara un evento interno creando objetos de alguna subclase de EventObject

OBJETOS Y EVENTOS La clase de un objeto fuente de evento determina las clases de los objetos evento que se crearán implícitamente: Introducción a la Programación Orientada a Objetos IPOO Clase de los objetos Fuente de evento Clases de los objetos evento JButtonActionEvent JCheckBoxActionEvent, ItemEvent JRadioButtonActionEvent, ItemEvent JMenuItemActionEvent JTextFieldActionEvent, KeyEvent JComboBoxActionEvent, ItemEvent

OBJETOS Y EVENTOS Cada subclase de EventObject define atributos y métodos adecuados para un tipo particular de acción del usuario, como por ejemplo, mover el mouse sobre un panel, oprimir una tecla o activar un botón. En cada uno de estos casos se creará un objeto evento de una clase específica. Introducción a la Programación Orientada a Objetos IPOO

OBJETOS Y EVENTOS Los objetos de las clases JButton, JTextField, JComboBox son objetos fuente de evento que crean objetos evento de clase ActionEvent. Esto es, cuando el usuario realiza una acción sobre la componente asociada al objeto fuente de evento, este crea un objeto de clase ActionEvent. La clase del objeto oyente que escuche estos eventos deben implementar la interface ActionListener del paquete j ava.awt.event. Introducción a la Programación Orientada a Objetos IPOO

7 OBJETO FUENTE Component Evento Interno OBJETO EVENTO EventObject percibe dispara crea Evento Externo El objeto oyente es instancia de una clase que implementa una interface y redefine el método manejador del evento OBJETO Oyente ActionListener registrado a El objeto evento es un parámetro para el método manejador del evento

OBJETOS Y EVENTOS La clase del oyente implementa a una interface redefiniendo al método manejador del evento de acuerdo al comportamiento esperado en respuesta a la acción del usuario. El manejador del evento recibe como parámetro a un objeto evento creado implícitamente. Cuando un objeto fuente de evento dispara un evento interno, crea objetos evento de alguna subclase de EventObject provista en el paquete j ava.awt.event. Introducción a la Programación Orientada a Objetos IPOO

OBJETOS Y EVENTOS La interface define uno o más métodos manejadores que deben ser implementados considerando el comportamiento esperado en respuesta a la acción del usuario. La lista de parámetros de un manejador de eventos siempre consiste en un argumento del tipo de clase evento. Introducción a la Programación Orientada a Objetos IPOO

OBJETOS Y EVENTOS Introducción a la Programación Orientada a Objetos IPOO Objeto EventoInterface de oyenteManejador ActionEventActionListeneractionPerformed(ActionEvent) ItemEventItemListeneritemStateChanged(ItemEvent) MouseEventMouseListenermousePressed(MouseEvent) mouseReleased(MouseEvent) mouseEntered(MouseEvent) mouseExited(MouseEvent) mouseClicked(MouseEvent) KeyEventKeyListenerkeyPressed(KeyEvent) keyRealesed(KeyEvent) keyTyped(KeyEvent)

OBJETOS Y EVENTOS Mostrar una ventana con un panel que cambiará de color según los diferentes eventos del mouse que se produzcan como consecuencia de las acciones del usuario. En otro panel se muestra la acción del usuario y la posición del indicador del mouse sobre la componente. Introducción a la Programación Orientada a Objetos IPOO

EVENTOS DEL MOUSE 12 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class ControlMouse extends JFrame{ private JPanel panelMouse; private JLabel eventoMouse; private Container contenedor; Introducción a la Programación Orientada a Objetos IPOO

EVENTOS DEL MOUSE 13 public ControlMouse() { contenedor = getContentPane(); contenedor.setLayout(new GridLayout(2,0)); panelMouse = new JPanel(); panelMouse.setBackground(Color.WHITE); panelMouse.setPreferredSize (new java.awt.Dimension(300, 150)); eventoMouse = new JLabel(); eventoMouse.setPreferredSize (new java.awt.Dimension(300,70)); … }

EVENTOS DEL MOUSE 14 public ControlMouse() { … OyenteMouse escuchaMouse = new OyenteMouse(); panelMouse.addMouseListener(escuchaMouse); contenedor.add(panelMouse); contenedor.add(eventoMouse); } Observemos que el oyente queda registrado al panel, de modo que reaccionará ante los eventos del mouse producidos ante las acciones del usuario sobre el panel.

EVENTOS DEL MOUSE 15 class OyenteMouse implements MouseListener{ public void mouseClicked (MouseEvent e) { String s = new String(); eventoMouse.setText(s.format (“Cliqueó en [%d,%d]", e.getX(), e.getY())); panelMouse.setBackground(Color.BLUE); } … }

EVENTOS DEL MOUSE 16 class OyenteMouse implements MouseListener{ … public void mouseEntered (MouseEvent e) { String s = new String(); eventoMouse.setText(s.format (“Entró en[%d,%d]", e.getX(), e.getY())); panelMouse.setBackground(Color.RED); } … }

EVENTOS DEL MOUSE 17 class OyenteMouse implements MouseListener{ … public void mouseExited (MouseEvent e) { String s = new String(); eventoMouse.setText(s.format ("Salió en [%d,%d]", e.getX(), e.getY())); panelMouse.setBackground(Color.GREEN); } … }

EVENTOS DEL MOUSE 18 class OyenteMouse implements MouseListener{ … public void mouseReleased (MouseEvent e { String s = new String(); eventoMouse.setText(s.format ("Soltó en [%d,%d]", e.getX(), e.getY())); panelMouse.setBackground(Color.MAGENTA); } … }

EVENTOS DEL MOUSE 19 class OyenteMouse implements MouseListener{ … public void mousePressed (MouseEvent e) { String s = new String(); eventoMouse.setText(s.format ("Presionó en [%d,%d]", e.getX(), e.getY())); panelMouse.setBackground(Color.YELLOW); } }

EVENTOS DEL MOUSE 20 public class controlMouse extends JFrame { private JPanel panelMouse; private JLabel eventoMouse; … class OyenteMouse implements MouseListener{ public void mouseClicked(MouseEvent e) { } public void mousePressed(MouseEvent e) { } public void mouseReleased(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } } java.awt.event.MouseListener mouseClicked(e:MouseEvent): void mousePressed(e:MouseEvent): void mouseReleased(e:MouseEvent): void mouseEntered(e:MouseEvent): void mouseExited(e:MouseEvent): void

21 private void hacerGUI(){ getContentPane().setLayout(new GridLayout(2,0)); panelMouse = new JPanel(); panelMouse.setBackground(Color.WHITE); panelMouse.setPreferredSize(new java.awt.Dimension(300, 150)); eventoMouse = new JLabel(); eventoMouse.setPreferredSize(new java.awt.Dimension(300,70)); OyenteMouse escuchaMouse = new OyenteMouse(); panelMouse.addMouseListener(escuchaMouse); panelMouse.addMouseMotionListener(escuchaMouse); getContentPane().add(panelMouse); getContentPane().add(eventoMouse); } … }

EVENTOS DEL MOUSE 22 public class controlMouse extends JFrame { private JPanel panelMouse; private JLabel eventoMouse;; … class OyenteMouse implements MouseListener, MouseMotionListener{ public void mouseClicked(MouseEvent e) { } public void mousePressed(MouseEvent e){ } public void mouseReleased(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } }

EVENTOS DEL MOUSE 23 public class controlMouse extends JFrame { private JPanel panelMouse; private JLabel eventoMouse;; … class OyenteMouse implements MouseListener, MouseMotionListener{ public void mouseDragged(MouseEvent e){ String s = new String(); eventoMouse.setText(s.format("Arrastró a [%d,%d]", e.getX(),e.getY()));} public void mouseMoved(MouseEvent e){ String s = new String(); eventoMouse.setText(s.format("Se movió a [%d,%d]", e.getX(),e.getY()));} }

OBJETOS Y EVENTOS Con frecuencia una interface de eventos brinda más servicios que los que necesitamos. Por ejemplo, la interface MouseListener ofrece cinco servicios, si nuestra GUI solo va a reaccionar ante un click del mouse tenemos que definir el código de mouseClicked, los otros cuatro quedan sin especificar. Sin embargo, si definimos una clase que implementa a esta interface es necesario implementar todos los servicios provistos. Introducción a la Programación Orientada a Objetos IPOO

OBJETOS Y EVENTOS Un adaptador es una clase que implementa todos los métodos de una interface, de modo que en lugar de implementar una interface podemos extender la clase adaptador. Para la interface MouseListener Java brinda la clase MouseAdapter con cuerpo vacío para los cinco métodos. Para MouseMotionListener la clase adaptador es MouseMotionAdapter. Introducción a la Programación Orientada a Objetos IPOO

Introducción a la Programación Orientada a Objetos IPOO OBJETO FUENTE Component Evento Interno OBJETO EVENTO EventObject percibe dispara crea Evento Externo El objeto oyente es instancia de una clase que implementa una interface y redefine el método responsable de reaccionar ante la acción del usuario OBJETO Oyente ActionListener registrado a El objeto evento es un parámetro para el método manejador del evento