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