Professional Documents
Culture Documents
ndice
UNIDAD 1.EVENTOS DE JAVA ........................................................................................ 3 Presentacin de la unidad........................................................................................................... 3 Propsito ........................................................................................................................................ 3 Competencia especfica .............................................................................................................. 3 Actividad 1. Intercambio de conocimientos .............................................................................. 3 1.1. Introduccin a los eventos................................................................................................... 4 1.1.1. Generalidades sobre los eventos ................................................................................... 4 1.1.2. Definicin de eventos........................................................................................................ 5 1.2. Tipos de eventos................................................................................................................... 7 1.2.1. Eventos del ratn............................................................................................................... 7 1.2.2. Eventos del teclado ......................................................................................................... 10 1.2.3. Eventos de otros componentes ..................................................................................... 12 Actividad 2.Eventos .................................................................................................................... 14 Actividad 3.Componentes y estructura ................................................................................... 14 Autoevaluacin ........................................................................................................................... 15 Evidencia de aprendizaje.Eventos de Java............................................................................ 15 Cierre de la unidad ..................................................................................................................... 16 Para saber ms........................................................................................................................... 16 Fuentes de consulta ................................................................................................................... 17
Presentacin de la unidad
En esta primera unidad de la materia Programacin Orientada a Objetos II (POO2), se aprender el concepto de evento en la programacin, as como la descripcin y tipos de eventos de ratn, teclado y de otros componentes. Ya que estos temas son importantes para la manipulacin de componentes grficos que se vern en la siguiente unidad.
Propsito
En esta unidad logrars: Identificar el concepto de eventos en la programacin. Identificar los eventos de ratn y de teclado. Identificar el uso de eventos. Identificar los componentes y estructura para el manejo de los eventos.
Competencia especfica
Identificar los eventos en la programacin orientada a objetos para su posterior aplicacin en un aplicacin con componentes grficos, a travs de comprender la sintaxis que los crea.
Si tienes dudas o comentarios relacionados con detalles tcnicos, por ejemplo, sobre la instalacin de alguno de los programas que se usan en el curso, ingresa a la seccin Aspectos tcnicos. Si tus comentarios se refieren a temas directamente relacionados con el contenido de la asignatura, da clic en la categora Aspectos sobre el contenido de la asignatura.
Un componente grfico deber tener tantos escuchas como eventos tenga relacionados, pues cada uno de los escuchas deber estar al pendiente de cada evento que pudiera ocurrir. Por ejemplo: Si se tiene un botn (componente grfico)y se da un clic sobre l, realiza una accin, si es una accin diferente es doble clic y si es una accin diferente a las otras dos es clic derecho, entonces, nuestro componente botn deber contar con 3 escuchas, uno para cada evento asociado, y evidentemente cada evento su propio mtodo asociado a la accin desencadenada para cada caso en particular. Los escuchas a su vez deben tener mtodos asociados que realicen las acciones correspondientes a la respuesta que deba brindar el componente al evento asociado.
Figura 1. Elementos para manejar un evento La figura se realiz en base al diagrama de Ceballos(2006)
Veamos el siguiente ejemplo de cdigo (instrucciones con que se crean un programa) 1.Evento marco: 5 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 5
Ejemplo de cdigo 1. Evento en un marco package clases; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JFrame; /** * @author ESAD */ public class EjemploEventos { public static void main (String[] args){ JFrameframe=new JFrame("Ejemplo de eventos"); frame.setLocation(100, 100); frame.setVisible(true); frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e){ System.exit(0); } }); } }
El ejemplo marca lo siguiente: -En azul la definicin de la clase, el mtodo principal y la importacin de las libreras necesarias, as como los cierres requeridos. -En sombra verde la declaracin de un marco y sus propiedades (veremos este tema ms a fondo en la siguiente unidad, por ahora lo importante es el evento). 6 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 6
-Y en sombreado morado la adicin del escuchador (addWindowListener) al componente (en este caso el marco llamado frame), que deber precisamente escuchar los eventos que ocurran sobre el marco; Al escuchador se le enva como parmetro la creacin del adaptador (WindowAdapter), en el adaptador se redefine el mtodo (@Override - recuerda que la redefinicin de mtodos se vio en POO1-) para cerrar la ventana (windowClosing) al detectar dicha accin y lo que se har es cerrar el sistema (System.exit(0);), lo cual no sucedera normalmente con el marco. *Nota 1: Los adaptadores (Adapter) son clases abstractas que permiten la implementacin de una interfaz (recuerda las interfaces vistas en POOI) y permite redefinir los mtodos declarados en la interfaz. *Nota 2: Se recomienda ejecutar el ejemplo sin la seccin morada y cerrar la ventana para ver que el programa an sigue en ejecucin. Despus de aadir dicha seccin volver a ejecutar la clase, y con esta porcin de cdigo laaplicacin finalizar al cerrar el marco. *Nota 3: Toma en cuenta que para poder utilizar eventos se requiere invocar el API de JAVAawt (AbstractWindowToolkit, en espaol Kit de Herramientas de Ventana Abstracta), y para el manejo de componentes grficos se requiereel swing (biblioteca de grficos), sin estos componentes no podran manejarse estos elementos.
A continuacin se enlistan los tipos de eventos del ratn y el momento en el que cada uno de ellos se detecta y se activa. Tabla 1. Eventos de ratn Tipo mouseClicked
Deteccin Se ha hecho clic con el ratn sobre el componente. El clic completo incluye presionar el ratn y soltarlo. *Para detectar un doble clic se contabiliza cada clic sencillo. Se ha presionado el ratn y sin soltarlo se ha arrastrado sobre el componente. El ratn se ha posicionado sobre el componente, sin presionarlo. El ratn deja de estar posicionado sobre el componente, sin presionarlo. Se mueve el ratn sobre el componente, sin presionar Se ha presionado el ratn sobre el componente (aun sin soltarlo). Se ha soltado (despus de presionarlo) el ratn sobre el componente. Se mueve la rueda del ratn sobre el componente.
Estos eventos pueden asignarse a casi todos los componentes. Es importante que al asignar eventos a un componente, a pesar de que pueden ligarse varios al mismo componente, es recomendable que no se asignen muchos eventos del mismo tipo para evitar confusiones. Por ejemplo: no deber usarse un evento de mousePressed, mouseReleased y mouseClicked al mismo componente y con acciones diferentes para cada uno de ellos, pues un clic requiere, tanto la presin, como, que se suelte el botn del ratn. Esto ocasionara que exista muy poco tiempo entre cada evento y no se desplegaran correctamente cada accin asignada. Ahora veamos un ejemplo de cmo se utilizan estos eventos, observa la siguiente clase: Ejemplo de cdigo 2. Evento clic en un botn package clases; importjava.awt.event.MouseAdapter; importjava.awt.event.MouseEvent; importjava.awt.event.WindowAdapter; importjava.awt.event.WindowEvent; importjavax.swing.JButton; importjavax.swing.JFrame; /** * @author ESAD 8 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 8
*/ publicclassEjemploEventoRaton { publicstaticvoidmain (String[] args){ JButtonboton=new JButton("Oprime"); boton.setVisible(true); boton.setSize(50, 50); boton.setLocation(100,100); JFrameframe=new JFrame("Ejemplo de eventos"); frame.setLocation(200, 200); frame.setVisible(true); frame.setSize(300, 300); frame.add(boton); boton.addMouseListener(new MouseAdapter() { @Override publicvoidmouseClicked(MouseEvent e){ System.out.print("Disteclic en el botonOprime"); } }); frame.addWindowListener(new WindowAdapter() { @Override publicvoidwindowClosing(WindowEvent e){ System.exit(0); } }); } }
El ejemplo marca: -En azul la definicin de la clase, el mtodo principal y la importacin de las libreras necesarias, as como los cierres requeridos. -En sombra verde la declaracin de un marco y un botn, as como sus propiedades (veremos este tema ms a fondo en la siguiente unidad, por ahora lo importante es el evento). -En sombreado morado la adicin del escuchador al marco y su manipulacin (que ya ha sido explicado en el ejemplo 1). 9 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 9
-En sombreado naranja la adicin del escuchador del ratn (addMouseListener) al botn (llamado tambin boton, sin acento porque JAVA no los permite en el cdigo), que escuchara los eventos que ocurran con el mouse sobre el componente. Al escuchador se le enva como parmetro la creacin del adaptador (MouseAdapter), en el adaptador se redefine el mtodo (@Override) para detectar el evento (mouseClicked) que recibe como parmetro un evento del tipo ratn (MouseEvent).Al ejecutar el programa se van a detectar todos los eventos que el usuario realice, pero solo se ejecutar la accin de impresin si el evento detectado es el indicado (mouseClicked). Si no se agrega este evento al botn este no realizar absolutamente nada, pues no se ha indicado que deba reaccionar ante algn evento. *Nota1: se recomienda ejecutar el ejemplo sin la seccin naranja y hacer varios clics sobre el botn, para ver que el programa an sigue en ejecucin sin hacer nada, y despus aadir dicha seccin para volver a ejecutar la clase, y ver con esta porcin de cdigo, laaplicacin que imprimir el mensaje colocado.
Al igual que en el caso anterior no se recomienda utilizar varios eventos de teclado sobre el mismo componente. Ahora en siguiente ejemplo vers cmo se utilizan estos eventos, observa la siguiente clase:
Ejemplo de cdigo 3. Evento de teclado en una caja de texto. package clases; importjava.awt.event.KeyAdapter; importjava.awt.event.KeyEvent; importjava.awt.event.WindowAdapter; importjava.awt.event.WindowEvent; importjavax.swing.JFrame; importjavax.swing.JTextField; /** * @author ESAD */ publicclassEjemploEventoTeclado {
publicstaticvoidmain (String[] args){ JTextFieldcajaTexto= new JTextField("Etiqueta"); cajaTexto.setVisible(true); cajaTexto.setSize(50, 50); cajaTexto.setLocation(100,100); JFrameframe=new JFrame("Ejemplo de eventos"); frame.setLocation(200, 200); frame.setVisible(true); frame.setSize(300, 300); frame.add(cajaTexto); cajaTexto.addKeyListener(new KeyAdapter() { @Override publicvoidkeyPressed(KeyEvent e){ metodoAccion(); } }); frame.addWindowListener(new WindowAdapter() { @Override publicvoidwindowClosing(WindowEvent e){ System.exit(0); } }); } 11 Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software 11
publicstaticvoidmetodoAccion(){ System.out.println("Mensaje"); } } El ejemplo marca: -En azul la definicin de la clase, el mtodo principal y la importacin de las libreras necesarias, as como los cierres requeridos. -En sombra verde la declaracin de un marco y una caja de texto, as como sus propiedades (veremos este tema ms a fondo en la siguiente unidad, por ahora lo importante es el evento). -En sombreado morado la adicin del escuchador al marcoy su manipulacin (que ya ha sido explicado en el ejemplo 1). -En sombreado naranja la adicin del escuchador del teclado (addKeyListener) a la caja de texto (llamada cajaTexto), que escuchara los eventos que ocurran con el teclado sobre el componente. Al escuchador se le enva como parmetro la creacin del adaptador (KeyAdapter), en el adaptador se redefine el mtodo (@Override) para detectar el evento (keyPressed) que recibe como parmetro un evento del tipo teclado (KeyEvent), se van a detectar todos los eventos pero solo se ejecutar la accin de llamar al mtodo (metodoAccion), el evento detectado es el indicado (keyPressed). Si no se agrega este evento a la caja de texto esta no realizar absolutamente nada, pues no se ha indicado. En este ejemplo puedes observarque no solo se deben colocar las acciones a realizar dentro de la estructura de manipulacin del evento, si no que tambin pueden realizarse llamadas a mtodos para tener un cdigo mejor estructurado y modular. *Nota 1: se recomienda ejecutar el ejemplo sin la seccin naranja y teclear sobre la caja de texto para ver que el programa an sigue en ejecucin sin hacer nada, y despus aadir dicha seccin volver a ejecutar la clase, y ver con esta porcin de cdigo que laaplicacin imprimir el mensaje colocado.
Cada uno de los componentes grficos tiene una lista de eventos predeterminados. Por ejemplo, el cdigo presentado en el subtema 1.1.2, es un evento de ventana (WindowEvent) que detecta el cierre de esta (windowClosing) y para asignarlos se utiliz el escucha de ventanas (addWindowListener). Por consecuencia, este evento solo aplica para las ventanas, pues son las nicas que cuentan con un elemento de cierre. Aunque, se podra asignar un evento para detectar si se brela ventana (windowOpened). Para lo anterior, debers tomar en cuenta (en base a los ejemplos), que para manipular eventos mediante el cdigo requieres: Un componente. Un escuchador. Un adaptador. Indicar el evento deseado a detectar. Tipo de evento. E indicar las acciones a seguir si se detecta el evento indicado.
Ahora que ya tienes los elementos necesarios para comprender los eventos, te invitamos a participar en la siguiente actividad para que pongas en prctica tus conocimientos.
A continuacin te presentamos la actividad de eventos, que a diferencia de otros cuatrimestres, a partir de ste podrs consultar los criterios de evaluacin de cada una de las actividades.
Actividad 2.Eventos
Esta actividad tiene la finalidad de identificar los diferentes eventos presentados y realizar una descripcin propia de los elementos que lo componen. Ingresa al aula virtual para realizar la actividad. Propsito: Enlistar los diferentes eventos presentados y redactar una descripcin propia de cada uno de ellos. Instrucciones: 1. Identifica y enlista los diferentes eventos presentados en los temas estudiados durante toda la unidad. 2. Redacta una descripcin propia para cada evento, sin copiar de ninguna fuente, ya que debe ser una descripcin que t mismo realices y comprendas. Cada una de las descripciones deber ser un prrafo de al menos 5 lneas. 3. En un archivo de texto, coloca los elementos solicitados en el punto 1 y 2. 4. Guarda la actividad con el nombre POO2_U1_A2_XXYZ. Sustituye las XX por las dos primeras letras del primer nombre, la Y por la inicial del apellido paterno y la Z por la inicial del apellido materno. 5. Ingresa al apartado de tareas y sube tu archivo 6. Enva el archivo al facilitador(a) para recibir retroalimentacin.
2. Desarrolla una descripcin con tus propias palabras de los puntos que identificaste en la indicacin anterior. 3. Guarda la actividad con el nombre POO2_U1_A3_XXYZ. Sustituye las XX por las dos primeras letras del primer nombre, la Y por la inicial del apellido paterno y la Z por la inicial del apellido materno. 4. Ingresa al apartado de tareas y sube tu archivo 5. Enva el archivo al facilitador(a) para recibir retroalimentacin.
Autoevaluacin
Para reforzar los conocimientos relacionados con los temas que se abordaron en esta tercera unidad del curso, es necesario que resuelvas la actividad integradora. Recuerda que es muy importante leer cuidadosamente los planteamientos indicados y elegir la opcin adecuada para cada uno.
5. Guarda la actividad con el nombre POO2_U1_EA_XXYZ. Sustituye las XX por las dos primeras letras del primer nombre, la Y por la inicial del apellido paterno y la Z por la inicial del apellido materno. 6. Enva el archivo al facilitador(a) a travs de la seccin de Evidencias. 7. Consulta la escala de evaluacin para conocer los parmetros de la actividad.
Autorreflexiones
Adems de enviar tu trabajo de la Evidencia de aprendizaje, es importante que ingreses al foro Preguntas de Autorreflexin y consultes las preguntas que tu Facilitador(a) presente, a partir de ellas, debes elaborar tu Autorreflexin en un archivo de texto llamado POO2_U1_ATR_XXYZ. Posteriormente enva tu archivo mediante la herramienta Autorreflexiones.
Cierre de la unidad
Has concluido la primer unidad del curso, a lo largo de esta comprendiste el tema de eventos, que son los que ayudan a identificar lo que el usuario est realizando sobre una aplicacin, y al programar sta responda adecuadamente a lo que el usuario realice. Tambin observaste los elementos que se utilizan para manejar eventos, tales como los escuchadores que captan los eventos, y los adaptadores que permiten la sobre escritura de los mtodos que controlarn la respuesta del programa a dichos eventos. Finalmente identificaste los tipos de eventos que pueden detectarse, ya sea con el ratn (como clic, doble clic, etc.), con el teclado (la presin de ciertas teclas), o con algn otro componente (como el cierre de ventanas) y sus respectivos ejemplos con cdigo en JAVA. En la siguiente unidad se hablara sobre componentes grficos, en la cual ser necesario todo lo que se ha visto en esta primer unidad, ya que debemos detectar lo que los usuarios realizan sobre cada uno de los componentes que veremos en dicha unidad.
Para saber ms
Es importante que instales un IDE en tu computadora personal para que pases todos los ejemplos de cdigo y veas cmo funcionan, de esta manera podrs analizar el funcionamiento de los cdigos presentados.
*Nota: se recomienda que instales NetBeans 7.0, como IDE, por su facilidad de uso, este puede ser descargado gratuitamente de: Pgina oficial del IDE NetBeans. Editor: NetBeanscommunity, ORACLE. Esta pgina ofrece la descarga gratuita del IDE en la siguiente liga:http://netbeans.org/downloads/ Si deseas conocer los eventos asociados a cada tipo de componente, revisa la tabla de los componentes de swing con los escuchadores que cada uno puede asociar: Tutoriales de JAVA. Editor: Oracle and/oritsaffiliates, ORACLE. Esta compaa, ofrece un amplio tutorial de programacin del lenguaje JAVA, y un tema especfico sobre eventos en: http://docs.oracle.com/javase/tutorial/uiswing/events/eventsandcomponents.html
Fuentes de consulta
Eckstein, R.,Loy, M. y Wood, D. (1998). JAVA Swing. Estados Unidos de America: OReilly Ceballos, F (2006). Interfaces grficas y aplicaciones para internet, 2da Edicin. Espaa:RA-MA. Oracle (2011). The JAVA Tutorials. Estados Unidos de America: Oracle.