Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Programación Orientada A Objetos II: Unidad 1. Eventos de Java
Programación Orientada A Objetos II: Unidad 1. Eventos de Java
Programa de la asignatura:
Programacin orientada a objetos II
Unidad 1. Eventos de Java
1
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software
1
ndice
2
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software
2
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:
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 quieres comentar asuntos personales que no tengan relacin directa con los
contenidos de las unidades, utiliza la categora Asuntos personales (realiza estos
comentarios con respeto y responsabilidad).
3
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.
4
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software
4
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.
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
7
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software
7
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
mouseDragged
mouseEntered
mouseExited
mouseMoved
mousePressed
mouseReleased
mouseWheelmoved
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:
10
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software
10
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.
12
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software
12
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.
13
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software
13
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.
15
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software
15
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.
16
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software
16
*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
17
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software
17