Download Programación de Eventos

Document related concepts
no text concepts found
Transcript
Universidad Autónoma de Baja California
Facultad de Ingeniería
Apuntes de Programación Orientada a Objetos I
Programación de Eventos
Un evento es un suceso que ocurre dentro del contexto de la ejecución de un
programa. Por ejemplo, se presiona un botón, se modifica una caja de texto, se
selecciona una opción de un menú, o se presionó una tecla. El objeto en el que
ocurre el evento es el generador de eventos. En los ejemplos anteriores, estos
sería, el botón, la caja de texto, el menú y el teclado.
Una vez que ocurre un evento, otro objeto llamado manejador de eventos
realiza una acción como resultado del evento. Sin embargo, antes de que un
manejador de eventos pueda responder a un evento se deberá registrar al
manejador de eventos con el generador de eventos. Esto es, el manejador debe
avisar al generador que le “diga” cuando se presente el evento.
En Java, los generadores de eventos en general ya son parte del sistema de
Java y no necesitan modificarse. Los manejadores de eventos si deberán
programarse. También se deberán registrar los manejadores con los
generadores de eventos.
La forma de registrar manejadores dependerá del generador de eventos del que
se trate. Por ejemplo, un componente Button genera eventos ActionEvents. Los
manejadores de eventos en Java se llaman listeners. Un objeto registra un
listener con un botón por medio de su método addActionListener() que tenga
como parámetro el nombre del listener. De esta manera, el botón recordará que
fue registrado y sabrá a quien notificar.
Los siguientes dos listados demuestran dos formas de registrar y atender el
evento de presionar un botón. La Figura 1 es una toma del applet creado por el
código de los listados.
1 de 5
Elaborado por: M.C. Cecilia M. Curlango Rosas
Universidad Autónoma de Baja California
Facultad de Ingeniería
Apuntes de Programación Orientada a Objetos I
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class eventos1 extends JApplet implements
ActionListener {
JLabel etiqueta1;
JTextField texto;
JButton borra;
public void init()
{
Container contenedor = getContentPane();
contenedor.setLayout( new FlowLayout() );
// crear etiqueta
etiqueta1 = new JLabel( "Escribe un texto:" );
contenedor.add( etiqueta1 );
// crear caja de texto
texto = new JTextField( 10 );
contenedor.add( texto );
// crear boton
borra = new JButton( "Borrar Texto" );
2 de 5
Elaborado por: M.C. Cecilia M. Curlango Rosas
Universidad Autónoma de Baja California
Facultad de Ingeniería
Apuntes de Programación Orientada a Objetos I
// registrar al manejador con el boton
borra.addActionListener( this );
contenedor.add( borra );
} // fin de init()
// codificar el manejador de eventos
public void actionPerformed( ActionEvent actionEvent )
{
texto.setText( "" );
} // fin de actionPerformed() manejador
}
Listado 1
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class eventos2 extends JApplet {
JLabel etiqueta1;
JTextField texto;
JButton borra;
public void init()
{
3 de 5
Elaborado por: M.C. Cecilia M. Curlango Rosas
Universidad Autónoma de Baja California
Facultad de Ingeniería
Apuntes de Programación Orientada a Objetos I
Container contenedor = getContentPane();
contenedor.setLayout( new FlowLayout() );
// crear etiqueta
etiqueta1 = new JLabel( "Escribe un texto:" );
contenedor.add( etiqueta1 );
// crear caja de texto
texto = new JTextField( 10 );
contenedor.add( texto );
// crear boton
borra = new JButton( "Borrar Texto" );
// registrar al manejador con el boton
borra.addActionListener( new Manejador(this) );
contenedor.add( borra );
} // fin de init()
public void borraTexto()
{
texto.setText( "" );
} // fin de borraTexto()
} // fin de clase eventos2
4 de 5
Elaborado por: M.C. Cecilia M. Curlango Rosas
Universidad Autónoma de Baja California
Facultad de Ingeniería
Apuntes de Programación Orientada a Objetos I
class Manejador implements ActionListener {
eventos2 aplicacion;
Manejador(eventos2 ap)
{
aplicacion = ap;
} // fin de constructor
// codificar al manejador de eventos
public void actionPerformed( ActionEvent actionEvent )
{
aplicacion.borraTexto();
} // fin de actionPerformed() manejador
}
// fin de clase Manejador
Listado 2
Figura 1 Applet creado por el código de los Listados 1 y 2.
5 de 5
Elaborado por: M.C. Cecilia M. Curlango Rosas