Sie sind auf Seite 1von 14

Programacin orientada a objetos II

Unidad 1. Eventos

Ingeniera en Desarrollo de Software


4o semestre

Programa de la asignatura:
Programacin Orientada a Objetos II

Unidad 1. Eventos
Clave:
Ingeniera:
15142421

TSU:
16142421

Universidad Abierta y a Distancia de Mxico

Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software


1

Programacin orientada a objetos II


Unidad 1. Eventos
ndice
Unidad 1. Eventos ............................................................................................................. 3
Presentacin de la Unidad ................................................................................................. 3
Propsito ........................................................................................................................... 3
Competencia especfica..................................................................................................... 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......................................................................................................... 6
1.2.1. Eventos del ratn ..................................................................................................... 7
1.2.2. Eventos del teclado .................................................................................................. 9
1.2.3. Eventos de otros componentes .............................................................................. 12
Cierre de la Unidad .......................................................................................................... 13
Para saber ms ............................................................................................................... 14
Fuentes de consulta ........................................................................................................ 14

Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software


2

Programacin orientada a objetos II


Unidad 1. Eventos
Unidad 1. Eventos
Presentacin de la Unidad
En esta primera unidad de la asignatura
Programacin orientada a objetos II
(POO2) aprenders 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

Al trmino de 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.

Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software


3

Programacin orientada a objetos II


Unidad 1. Eventos
1.1. Introduccin a los eventos
Cualquier aplicacin computacional requiere que los usuarios interacten con el sistema
mediante las pantallas o interfaces grficas de usuario (GUI) para que realicen
operaciones sobre estas, y con base en ello la aplicacin pueda responder con acciones
correctas para las que fue realizada dicha aplicacin, ya sea teclear datos, seleccionar
respuestas o simplemente oprimir un botn.
Por tanto, el hecho de que una aplicacin responda a las operaciones que realizan los
usuarios significa que esas operaciones han sido programadas precisamente para que la
aplicacin responda a cada una de las diferentes acciones que el usuario pueda llegar a
realizar.
Esas operaciones que los usuarios realizan son llamados eventos, y es el primer tema
de la asignatura POOII, que ayudar a realizar interfaces grficas, utilizando el paradigma
orientado a objetos (visto en POOI) con el lenguaje JAVA.

Eventos del teclado y del ratn

El tema de eventos es el inicio de la


asignatura para que se comprenda su uso y
manejo, que como se ver a lo largo de esta
unidad, los eventos son componentes muy
importante para realizar aplicaciones con
componentes grficos, y lograr que estos
proporcionen la interaccin adecuada para el
usuario.

1.1.1. Generalidades sobre los eventos


Para comenzar este subtema es necesario que recuerdes que las interfaces grficas de
usuario estn creadas con base en elementos, tales como botones, cajas de texto,
etiquetas, etc. Estos elementos son conocidos como componentes grficos.
Para el manejo de eventos los componentes grficos requieren de un escuchador. El
escuchador es un elemento que est precisamente escuchando para detectar si la
accin realizada por el usuario (evento) es el que est asignado al componente grfico, y
deber reaccionar ejecutando la accin asociada a ese evento. Es decir el escuchador
solo est esperando que algo pase, para informarlo y desencadenar una respuesta.
Un componente grfico deber tener tantos escuchas como eventos tenga relacionados,
porque 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
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software
4

Programacin orientada a objetos II


Unidad 1. Eventos
las otras dos es clic derecho, entonces, nuestro componente botn deber contar con 3
escuchas, uno para cada evento asociado, y evidentemente cada evento debe tener 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.

1.1.2. Definicin de eventos


Un evento para una computadora bsicamente es un mensaje que proporciona el
sistema operativo a un programa en ejecucin, indicando que existi un suceso que
puede ser un clic de un mouse, la presin de alguna tecla en particular, o conjunto de
teclas, de esta manera, se conoce lo que el usuario est realizando.
Ahora bien, para manejar los eventos se requiere:
Un componente sobre el que se detectar el evento requerido.
El escuchador del evento asociado al elemento del punto anterior (para que
detecte el evento que ocurra).
Un mtodo que defina o redefina (segn sea el caso), las acciones que debern
realizarse al presentarse el evento.

Elementos para manejar un evento


Basada en Ceballos (2006).

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);
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software
5

Programacin orientada a objetos II


Unidad 1. Eventos
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 (este tema se ver ms
a fondo en la siguiente unidad, por ahora lo importante es el evento).
- 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, se debe
volver a ejecutar la clase y con esta porcin de cdigo la aplicacin finalizar al cerrar el
marco.
*Nota 3: Toma en cuenta que para poder utilizar eventos se requiere invocar el API de
JAVA awt (AbstractWindowToolkit, en espaol Kit de Herramientas de Ventana
Abstracta), y para el manejo de componentes grficos se requiere el swing (biblioteca de
grficos), sin estos componentes no podran manejarse estos elementos.

1.2. Tipos de eventos


En este tema se abarcarn los tipos de eventos, los cuales se han dividido en tres
subtemas que son, los eventos que se generan con el ratn, con el teclado y una tercera
divisin de los eventos que no corresponden a los dos anteriores.
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software
6

Programacin orientada a objetos II


Unidad 1. Eventos

Cabe mencionar que en este material no se estn dando las especificaciones de todos y
cada uno de los eventos existentes, sino de los ms utilizados. Dado que cada
componente grfico cuenta con sus propios eventos, y existen libros completos para el
estudio de estos, que en este caso solo se pretende que comprendas lo que son y cmo
utilizarlos, para conocer informacin especializada dirgete a la seccin Para saber ms,
que se encuentra al final de la unidad y encontrars la liga que los creadores de Java
proporcionan con todas las especificaciones a detalle de cada evento existente.
Por ahora contina con la presentacin de los tipos de eventos.

1.2.1. Eventos del ratn


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.
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,
debido a que un clic requiere, tanto la presin, como que se suelte el botn del ratn,
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software
7

Programacin orientada a objetos II


Unidad 1. Eventos
porque esto ocasionara que exista muy poco tiempo entre cada evento y no se
desplegara correctamente cada accin asignada.
A continuacin se muestra 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
*/
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

Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software


8

Programacin orientada a objetos II


Unidad 1. Eventos
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 (se
ver 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).
-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 ste no realizar absolutamente nada, porque 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, la aplicacin que imprimir el mensaje colocado.

1.2.2. Eventos del teclado


A continuacin se enlistan los tipos de eventos del teclado y el momento en el que cada
uno de ellos se detecta y se activa.

Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software


9

Programacin orientada a objetos II


Unidad 1. Eventos

Al igual que en el caso anterior no se recomienda utilizar varios eventos de teclado sobre
el mismo componente.
Ahora en el 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);

Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software


10

Programacin orientada a objetos II


Unidad 1. Eventos
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);
}
});
}
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 (se ver 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).
-En sombreado naranja la adicin del escuchador del teclado (addKeyListener) a la caja
de texto (llamada cajaTexto) que escuchar 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

Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software


11

Programacin orientada a objetos II


Unidad 1. Eventos
(metodoAccion), el evento detectado es el indicado (keyPressed). Si no se agrega este
evento a la caja de texto de sta no realizar absolutamente nada, ya que no se ha
indicado.
En este ejemplo puedes observar que no solo se deben colocar las acciones a realizar
dentro de la estructura de manipulacin del evento, sino 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 la
aplicacin imprimir el mensaje colocado.

1.2.3. Eventos de otros componentes


Adems de los eventos de ratn y teclado se presentan a continuacin los tipos de
escuchadores que se pueden aplicar en donde los eventos varan de componente a
componente, por lo que solo se muestra una lista general.

Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software


12

Programacin orientada a objetos II


Unidad 1. Eventos
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 sta (windowClosing) y para asignarlos se utiliz
el escucha de ventanas (addWindowListener). Por consecuencia, este evento solo aplica
para las ventanas, porque son las nicas que cuentan con un elemento de cierre. Aunque,
se podra asignar un evento para detectar si se abre la ventana (windowOpened).
Para lo anterior, debers tomar en cuenta (con base en 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, se te invita a
participar en la siguiente actividad para que pongas en prctica tus conocimientos.

Cierre de la Unidad
En el transcurso de esta unidad Eventos, observaste que por medio de ellos se identifica
lo que el usuario est realizando sobre una aplicacin, y que 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 primera unidad, ya que es posible detectar lo que los
usuarios realizan sobre cada uno de los componentes que se revisarn en dicha unidad.

Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software


13

Programacin orientada a objetos II


Unidad 1. Eventos
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.

Se recomienda que instales NetBeans 7.0, como IDE, por su facilidad de uso, ste
puede ser descargado gratuitamente de la pgina oficial del IDE NetBean, editor:
NetBeanscommunity, ORACLE. Recuperado de 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 en los 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. Recuperado de
http://docs.oracle.com/javase/tutorial/uiswing/events/eventsandcomponents.html

Fuentes de consulta

Eckstein, R.; Loy, M. y Wood, D. (1998). JAVA Swing. California: OReilly.

Ceballos, F. (2006). JAVA 2: Interfaces grficas y aplicaciones para internet (2


ed.). Madrid: RA-MA.

Oracle. (2011). The Java Tutorials. California: Oracle.

Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software


14

Das könnte Ihnen auch gefallen