Documentos de Académico
Documentos de Profesional
Documentos de Cultura
T12 Intefaz Gráfica de Usuario - Manejo de Eventos
T12 Intefaz Gráfica de Usuario - Manejo de Eventos
2
Experiencia Curricular : Programación Orientada a Objetos Tema: Interfaz Gráfica de Usuario:
Docente: Ms. Zoraida Yanet Vidal Melgarejo Manejo de eventos Página - 1 -
Facultad de Ingeniería
Programa de Estudios: Ingeniería de Computación y Sistemas
Barra
de
menú
Marco de
Barra de la ventana
herramientas
Barra de Barras de
estado desplazamiento
Área de trabajo
4
Experiencia Curricular : Programación Orientada a Objetos Tema: Interfaz Gráfica de Usuario:
Docente: Ms. Zoraida Yanet Vidal Melgarejo Manejo de eventos Página - 2 -
Facultad de Ingeniería
Programa de Estudios: Ingeniería de Computación y Sistemas
6
Experiencia Curricular : Programación Orientada a Objetos Tema: Interfaz Gráfica de Usuario:
Docente: Ms. Zoraida Yanet Vidal Melgarejo Manejo de eventos Página - 3 -
Facultad de Ingeniería
Programa de Estudios: Ingeniería de Computación y Sistemas
8
Experiencia Curricular : Programación Orientada a Objetos Tema: Interfaz Gráfica de Usuario:
Docente: Ms. Zoraida Yanet Vidal Melgarejo Manejo de eventos Página - 4 -
Facultad de Ingeniería
Programa de Estudios: Ingeniería de Computación y Sistemas
Biblioteca JFC - 10 -
10
Experiencia Curricular : Programación Orientada a Objetos Tema: Interfaz Gráfica de Usuario:
Docente: Ms. Zoraida Yanet Vidal Melgarejo Manejo de eventos Página - 5 -
Facultad de Ingeniería
Programa de Estudios: Ingeniería de Computación y Sistemas
Formularios - 11 -
Una aplicación con una interfaz gráfica trabaja estableciendo entre los
objetos que componen la misma una comunicación mediante mensajes,
los cuales son producidos por eventos. Cuando un mensaje llega a un
objeto, éste tiene que procesarlo.
11
Formularios - 12 -
12
Experiencia Curricular : Programación Orientada a Objetos Tema: Interfaz Gráfica de Usuario:
Docente: Ms. Zoraida Yanet Vidal Melgarejo Manejo de eventos Página - 6 -
Facultad de Ingeniería
Programa de Estudios: Ingeniería de Computación y Sistemas
Formularios - 13 -
Comienzo Método 1
Método 2
Recuperar Entregar
siguiente información del
evento evento
Método 3
Método 4
No
¿Salir?
Si
Fin
13
Manejo de Eventos - 14 -
• El programador debe realizar dos tareas clave para procesar un evento de interfaz gráfica de
usuario en un programa: debe registrar un componente de escucha del evento para el componente
de la GUI que se espera genere ese evento, y debe implementar un método manejador del evento (o
un conjunto de métodos manejadores del evento).
• Cada interfaz de componente de escucha de eventos especifica uno o más métodos manejadores de
eventos que deben declararse en la clase que implemente a la interfaz de componente de escucha de
eventos. El uso de componentes de escucha de eventos en el manejo de eventos se conoce como el
modelo de delegación de eventos: el procesamiento de un evento se delega a un objeto específico (el
componente de escucha) en el programa.
14
Experiencia Curricular : Programación Orientada a Objetos Tema: Interfaz Gráfica de Usuario:
Docente: Ms. Zoraida Yanet Vidal Melgarejo Manejo de eventos Página - 7 -
Facultad de Ingeniería
Programa de Estudios: Ingeniería de Computación y Sistemas
Manejo de Eventos - 15 -
• Cuando ocurre un evento, el componente de la GUI con el que el usuario interactuó notifica a sus
componentes de escucha registrados, llamando al método manejador de eventos apropiado de cada
componente de escucha. Por ejemplo, cuando el usuario oprime la tecla Enter (evento ocurrido) en
un objeto JTextField (Componente), se hace una llamada al manejador de eventos actionPerformed
(método) del componente ActionListener (componente de escucha registrado).
15
Manejo de Eventos - 16 -
evento
Componente Componente de
ocurrido Escucha
Método
(respuesta al evento)
16
Experiencia Curricular : Programación Orientada a Objetos Tema: Interfaz Gráfica de Usuario:
Docente: Ms. Zoraida Yanet Vidal Melgarejo Manejo de eventos Página - 8 -
Facultad de Ingeniería
Programa de Estudios: Ingeniería de Computación y Sistemas
• Cada vez que el usuario escribe un carácter, oprime un botón del mouse, hace un movimiento con el
cursor del mouse, presiona una combinación de teclas, ocurre un evento.
• El objeto que recibe el evento (un botón, un área de texto, un panel, una lista, entre otros), es
notificado en tiempo de ejecución de que recibió el evento.
• Todo lo que se debe hacer es implementar la interfaz apropiada y registrarla como un escucha en el
componente GUI apropiado.
17
18
Experiencia Curricular : Programación Orientada a Objetos Tema: Interfaz Gráfica de Usuario:
Docente: Ms. Zoraida Yanet Vidal Melgarejo Manejo de eventos Página - 9 -
Facultad de Ingeniería
Programa de Estudios: Ingeniería de Computación y Sistemas
• Cuando un usuario hace clic sobre un botón o presiona la tecla Enter mientras digitaba en una caja
de texto o elige una opción de un menú, se genera un evento, que tiene los siguientes elementos:
✓ La fuente del evento (event source): Es el componente que origina el evento.
✓ El escuchador: (event listener) es el encargado de atrapar o escuchar el evento.
✓ El manejador del evento (event handler), es el método que permite implementar la interfaz,
es decir el escuchador. Este método:
➢ Recibe un objeto evento el cuál tiene información sobre el evento que sucedió,
➢ Descifra el evento, con dicho objeto, y
➢ Procesa lo solicitado por el usuario.
19
1. En la declaración de la clase que maneja el evento (event handler), se debe indicar que
implementa la interfaz correspondiente al evento (ABCListener, donde ABC es el tipo de
evento a observar o escuchar).
La clase puede implementar mas de un ABCListener. Si la clase no implementa la interfaz puede
ser que extienda a una clase que sí la implementa.
20
Experiencia Curricular : Programación Orientada a Objetos Tema: Interfaz Gráfica de Usuario:
Docente: Ms. Zoraida Yanet Vidal Melgarejo Manejo de eventos Página - 10 -
Facultad de Ingeniería
Programa de Estudios: Ingeniería de Computación y Sistemas
2. En los componentes que son la fuente del evento se registra una instancia del manejador del
evento, como un observador o escucha del tipo de evento que maneja (ABCListener). Es decir, se le
dice al componente que va a escuchar los eventos del tipo del manejador.
componente.addActionListener(instancia_de_miClaseListener);
21
3. En la clase que maneja el evento (event handler) se deben implementar los métodos de la
interface ABCListener que descifren el evento (ABCEvent) y lo procesen.
22
Experiencia Curricular : Programación Orientada a Objetos Tema: Interfaz Gráfica de Usuario:
Docente: Ms. Zoraida Yanet Vidal Melgarejo Manejo de eventos Página - 11 -
Facultad de Ingeniería
Programa de Estudios: Ingeniería de Computación y Sistemas
ACTIONLISTENER
• Cuando un usuario hace clic sobre un botón o presiona la tecla Enter mientras digita en una caja
de texto o elige una opción de un menú, se genera un evento ActionEvent y un mensaje
actionPerformed se envía a todos observadores o escuchas (los componentes), que implementan
la interfaz ActionListener, registrados en el componente.
23
24
Experiencia Curricular : Programación Orientada a Objetos Tema: Interfaz Gráfica de Usuario:
Docente: Ms. Zoraida Yanet Vidal Melgarejo Manejo de eventos Página - 12 -
Facultad de Ingeniería
Programa de Estudios: Ingeniería de Computación y Sistemas
COMPONENTLISTENER
• Es un objeto que genera uno o más eventos justo después de que el componente haya sido
ocultado, hecho visible, movido o redimensionado.
• Uno o más eventos se disparan o activan después que un componente es escondido, se hace
visible, es movido ó se cambia su tamaño.
25
26
Experiencia Curricular : Programación Orientada a Objetos Tema: Interfaz Gráfica de Usuario:
Docente: Ms. Zoraida Yanet Vidal Melgarejo Manejo de eventos Página - 13 -
Facultad de Ingeniería
Programa de Estudios: Ingeniería de Computación y Sistemas
ITEMLISTENER
• Los eventos ItemEvent son disparados o activados por componentes que implementan la interfaz
ItemSelectable. Estos componentes mantienen un estado on/off para uno o más items u opciones.
27
MOUSELISTENER
• Los eventos MouseEvent le informan cuando el usuario utiliza el mouse para interactuar con un
componente.
• Ocurren cuando el cursor entra o sale del área del componente en la ventana y cuando el usuario
oprime o libera el botón del mouse.
• La interface MouseListener y su correspondiente clase adaptadora MouseAdapter, contienen los
siguientes métodos:
void mouseClicked (MouseEvent eve)
void mousePressed (MouseEvent eve)
void mouseReleased (MouseEvent eve)
void mouseEntered (MouseEvent eve)
void mouseExited (MouseEvent eve)
28
Experiencia Curricular : Programación Orientada a Objetos Tema: Interfaz Gráfica de Usuario:
Docente: Ms. Zoraida Yanet Vidal Melgarejo Manejo de eventos Página - 14 -
Facultad de Ingeniería
Programa de Estudios: Ingeniería de Computación y Sistemas
MOUSEMOTIONLISTENER
• Los eventos MouseMotion informan cuando el usuario mueve el cursor encima del componente.
• La interface MouseMotionListener y su correspondiente clase adaptadora MouseMotionAdapter,
contienen los siguientes métodos:
void mouseMoved(MouseEvent eve)
void mouseDragged(MouseEvent eve)
• La clase MouseInputAdapter implementa MouseListener y MouseMotionListener.
29
KEYLISTENER
• Los eventos del teclado nos dicen cuando un usuario presiona o libera una tecla. Existen 2 tipos
de Eventos:
• Digitar un carácter Unicode (keyTyped)
• Presionar/liberar una tecla (keyPressed)
• Para que se active uno de los eventos el componente debe tener el foco:
void keyTyped (KeyEvent eve)
void keyPressed (KeyEvent eve)
void keyReleased (KeyEvent eve)
30
Experiencia Curricular : Programación Orientada a Objetos Tema: Interfaz Gráfica de Usuario:
Docente: Ms. Zoraida Yanet Vidal Melgarejo Manejo de eventos Página - 15 -
Facultad de Ingeniería
Programa de Estudios: Ingeniería de Computación y Sistemas
31
FOCUSLISTENER
• Cuando un componente recibe el foco, es decir, es el elemento de la pantalla que está activo se
producen eventos de tipo FocusEvent.
• Para hacer que un objeto pueda escuchar este tipo de eventos deberá implementar la interface
FocusListener, y además deberá añadir el método:
public void addFocusListener (FocusListener fl)
• Los métodos de esta interfaz son:
• public void focusGained( FocusEvent e)
• public void focusLost( FocusEvent e)
32
Experiencia Curricular : Programación Orientada a Objetos Tema: Interfaz Gráfica de Usuario:
Docente: Ms. Zoraida Yanet Vidal Melgarejo Manejo de eventos Página - 16 -
Facultad de Ingeniería
Programa de Estudios: Ingeniería de Computación y Sistemas
CONTAINERLISTENER
• Los eventos ContainerEvent son disparados o activados después que un componente es agregado o
removido del contenedor.
• Estos eventos son usados sólo para notificar que se presentó la adición o remoción del
componente, no es necesario el ContainerListener para que los componentes puedan ser agregados
o removidos.
33
34
Experiencia Curricular : Programación Orientada a Objetos Tema: Interfaz Gráfica de Usuario:
Docente: Ms. Zoraida Yanet Vidal Melgarejo Manejo de eventos Página - 17 -
Facultad de Ingeniería
Programa de Estudios: Ingeniería de Computación y Sistemas
WINDOWLISTENER
• Los eventos de Ventanas son disparados o activados cuando una ventana es abierta, cerrada,
iconificada (iconified), desconificada (deiconified), activada o desactivada.
• Los usos más comunes, son por ejemplo, usar un WindowListener, cuando el usuario cierra una
ventana, para preguntar si desea salvar los cambios o si es la última ventana cerrada para salir del
programa. Por defecto cuando un usuario cierra una ventana esta se vuelve invisible.
35
• void windowActivated(WindowEvent e)
Se invoca cuando la ventana está configurada para ser una ventana activa.
• void windowClosed(WindowEvent e)
Se invoca cuando una ventana se ha cerrado cuando se pulsa en una forma de cierre que la misma
contiene.
• void windowClosing(WindowEvent e)
Se invoca cuando el usuario intenta cerrar la ventana desde un método de cierre propio de la ventana.
• void windowDeactivated(WindowEvent e)
Se invoca cuando una ventana ya no está activa.
• void windowDeiconified(WindowEvent e)
Se invoca cuando una ventana se cambia de un minimizado a un estado normal.
• void windowIconified(WindowEvent e)
Se invoca cuando una ventana se cambia de una normal a un estado minimizado.
• void windowOpened(WindowEvent e)
Se invoca la primera vez que una ventana se hace visible.
36
Experiencia Curricular : Programación Orientada a Objetos Tema: Interfaz Gráfica de Usuario:
Docente: Ms. Zoraida Yanet Vidal Melgarejo Manejo de eventos Página - 18 -
Facultad de Ingeniería
Programa de Estudios: Ingeniería de Computación y Sistemas
Clases Adaptadoras - 37 -
37
Clases Adaptadoras - 38 -
38
Experiencia Curricular : Programación Orientada a Objetos Tema: Interfaz Gráfica de Usuario:
Docente: Ms. Zoraida Yanet Vidal Melgarejo Manejo de eventos Página - 19 -
Facultad de Ingeniería
Programa de Estudios: Ingeniería de Computación y Sistemas
Clases Adaptadoras - 39 -
• Por ello existe una clase adaptadora por cada interface listener que tiene
más de un método: MouseAdapter, WindowAdapter, KeyAdapter,
MouseMotionAdapter, FocusAdapter, ContainerAdapter y
ComponentAdapter, etc.
• Las clases adaptadoras implementan los métodos de la interface
correspondiente como vacíos
39
Clases Adaptadoras - 40 -
ComponentAdapter ComponentListener
ContainerAdapter ContainerListener
FocusAdapter FocusListener
KeyAdapter KeyListener
MouseAdapter MouseListener
MouseMotionAdapter MouseMotionListener
WindowAdapter WindowListener
40
Experiencia Curricular : Programación Orientada a Objetos Tema: Interfaz Gráfica de Usuario:
Docente: Ms. Zoraida Yanet Vidal Melgarejo Manejo de eventos Página - 20 -
Facultad de Ingeniería
Programa de Estudios: Ingeniería de Computación y Sistemas
Contenedores - 41 -
41
Contenedores - 42 -
marco
panel
etiqueta
botón
42
Experiencia Curricular : Programación Orientada a Objetos Tema: Interfaz Gráfica de Usuario:
Docente: Ms. Zoraida Yanet Vidal Melgarejo Manejo de eventos Página - 21 -
Facultad de Ingeniería
Programa de Estudios: Ingeniería de Computación y Sistemas
Contenedores - 43 -
43
Arquitectura Modelo-Vista-Controlador - 44 -
44
Experiencia Curricular : Programación Orientada a Objetos Tema: Interfaz Gráfica de Usuario:
Docente: Ms. Zoraida Yanet Vidal Melgarejo Manejo de eventos Página - 22 -
Facultad de Ingeniería
Programa de Estudios: Ingeniería de Computación y Sistemas
Arquitectura Modelo-Vista-Controlador - 45 -
eventos
controlador
vista modelo
45
Arquitectura Modelo-Vista-Controlador - 46 -
46
Experiencia Curricular : Programación Orientada a Objetos Tema: Interfaz Gráfica de Usuario:
Docente: Ms. Zoraida Yanet Vidal Melgarejo Manejo de eventos Página - 23 -