06 java eventos
DESCRIPTION
Introducción al lenguaje de programación Java.TRANSCRIPT
Prof. Renny Batista Programación III 1
El modelo de Delegación de Eventos en JavaEl modelo de Delegación de Eventos en Java
Prof. Renny Batista Programación III 2
El modelo de administración de eventos
Las aplicaciones gráficas se dice que son conducidas por eventos. Los eventos son sucesos que pueden tener lugar sobre la interfaz gráfica de la aplicación, provocados por alguna acción llevada acabo por el usuario sobre algún componente.
A esta forma de programar se le conoce como programación basada en eventos.
En Java los métodos de respuestas a los diferentes eventos que pueden tener lugar a una aplicación gráfica se encuentran definidos en unas interfaces conocidas como interfaces de escucha.
La interfaces de escucha para la administración de eventos de encuentra en el paquete java.awt.event.
Cada interfaz de escucha contiene los métodos para administrar un determinado grupo de eventos.
Prof. Renny Batista Programación III 3
El paquete java.awt.event
Prof. Renny Batista Programación III 4
Proceso de administración de eventos
Generador de Evento(Evento cerrar ventana)Generador de Evento(Evento cerrar ventana)
Generador de Evento(Evento “click” del botón)Generador de Evento
(Evento “click” del botón)
Click con el mouse Generación de un EventoGeneración de un Evento
Interfaz gráfica
Gestor del Evento
Prof. Renny Batista Programación III 5
Origen y destino del evento
La administración de un evento en Java implica dos actores u objetos principalesde la aplicación:
Origen del evento: Representa el objeto en el que se produce el evento que se quiere capturar (botón, ventana, etc.).Escuchador: Es el objeto de la clase que implementa la interfaz de escucha y que contiene el método de respuesta del evento.
Asociación Objeto Origen-Escuchador: En una aplicación gráfica se puede capturar varios eventos, lo que implicaría las creación de varias clases de escucha y objetos escuchadores. Podemos asociar a cada objeto origen del evento el objeto escuchador que gestione el evento:
void addXxxListener(XxxListener e)
donde, XxxListener representa el nombre de la interfaz de escucha que contiene el método para la administración del evento. Este método se invocaría sobre el objeto de origen, siendo el argumento del método el objeto escuchador.
Prof. Renny Batista Programación III 6
import java.awt.Container; import javax.swing.*; import java.awt.event.*;
public class Ventana extends JFrame implements ActionListener {
JLabel etiqueta = new JLabel("Nombre");
JTextField texto = new JTextField();
Container panel;
JButton boton = new JButton(“Aceptar");
public Ventana(){
super("Mi Primera Ventana");
setSize(450,320); setLocation(100, 100);
inicializar();
}
public void inicializar(){
panel = getContentPane(); panel.setLayout(null);
etiqueta.setBounds(120,100,80,20);
texto.setBounds(210,100,80,20);
boton.setBounds(180,140,80,20);
boton.addActionListener(this);
panel.add(etiqueta); panel.add(texto); panel.add(boton);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource()==boton) {
texto.setText(“Juan Perez");
}
} //fin del método
} //fin de la clase
Manejo de Eventos: Modelo “A” – Usando la misma clase
Importamos la clase event del paquete awtImportamos la clase event del paquete awt
Implementamos la interfazImplementamos la interfaz
1
2
3
4
Establecemos la relación entre
el origen del evento y el
escuchador
Establecemos la relación entre
el origen del evento y el
escuchador
La información acerca del evento viene encapsulada en un objeto genérico derivado de Event
La información acerca del evento viene encapsulada en un objeto genérico derivado de Event
Se debe implementar
el método abstracto de
la interfaz
Se debe implementar
el método abstracto de
la interfaz
5
Prof. Renny Batista Programación III 7
// Clase que controla el evento
// ManejarEvento.java
import java.awt.event.*;
public class ManejarEvento implements ActionListener{
Ventana objve;
public ManejarEvento(Ventana objve){
this.objve=objve;
}
public void actionPerformed(ActionEvent e) {
if (e.getSource()== objve.boton){
objve.texto.setText("Juan Pérez");
}
}
}
Manejo de Eventos: Modelo “B” – Delegando el evento a otra Clase
1
Crear la clase que implemente la interfaz Crear la clase que implemente la interfaz
2
Esta clase debe proporcionar una
propiedad para identificar la clase
que contiene el origen del evento.
Esta propiedad debe ser inicializada en el
constructor
Esta clase debe proporcionar una
propiedad para identificar la clase
que contiene el origen del evento.
Esta propiedad debe ser inicializada en el
constructor
3Se debe
implementar el método
abstracto de la interfaz
Se debe implementar
el método abstracto de
la interfaz La información acerca del evento viene encapsulada en un objeto genérico derivado de Event
La información acerca del evento viene encapsulada en un objeto genérico derivado de Event
4
Prof. Renny Batista Programación III 8
import java.awt.Container;
import javax.swing.*;
public class Ventana extends JFrame {
JLabel etiqueta = new JLabel("Nombre");
JTextField texto = new JTextField();
Container panel;
JButton boton = new JButton("Aceptar");
ManejarEvento objEven = new ManejarEvento(this);
public Ventana(){
super("Mi Primera Ventana");
setSize(450,320); setLocation(100,100);
inicializar();
}
public void inicializar(){
panel = getContentPane(); panel.setLayout(null);
etiqueta.setBounds(120,100,80,20);
texto.setBounds(210,100,80,20);
boton.setBounds(180,140,80,20);
panel.add(etiqueta); panel.add(texto); panel.add(boton);
boton.addActionListener(objEven);
}
} //fin de la clase
Manejo de Eventos: Modelo “B” – Delegando el evento a otra Clase
5
Creamos un objeto de la clase que tendrá la función de Escuchadora y le indicamos que el origen del evento se encuentra en está clase (this)
Creamos un objeto de la clase que tendrá la función de Escuchadora y le indicamos que el origen del evento se encuentra en está clase (this)
6
Relacionamos el origen del evento con el objeto escuchador
Relacionamos el origen del evento con el objeto escuchador
Prof. Renny Batista Programación III 9
Tabla resumen de interfaces