Unidad 1. Eventos

download Unidad 1. Eventos

of 14

description

lectura de poo

Transcript of Unidad 1. Eventos

  • Programacin orientada a objetos II Unidad 1. Eventos

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

    1

    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

  • Programacin orientada a objetos II Unidad 1. Eventos

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

    2

    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

  • Programacin orientada a objetos II Unidad 1. Eventos

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

    3

    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.

  • Programacin orientada a objetos II Unidad 1. Eventos

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

    4

    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

  • Programacin orientada a objetos II Unidad 1. Eventos

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

    5

    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);

  • Programacin orientada a objetos II Unidad 1. Eventos

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

    6

    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.

  • Programacin orientada a objetos II Unidad 1. Eventos

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

    7

    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 Deteccin

    mouseClicked 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.

    mouseDragged Se ha presionado el ratn y sin soltarlo se ha arrastrado

    sobre el componente.

    mouseEntered El ratn se ha posicionado sobre el componente sin

    presionarlo.

    mouseExited El ratn deja de estar posicionado sobre el componente sin

    presionarlo.

    mouseMoved Se mueve el ratn sobre el componente sin presionar

    mousePressed Se ha presionado el ratn sobre el componente (aun sin

    soltarlo).

    mouseReleased Se ha soltado (despus de presionarlo) el ratn sobre el

    componente.

    mouseWheelmoved 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,

  • Programacin orientada a objetos II Unidad 1. Eventos

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

    8

    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

  • Programacin orientada a objetos II Unidad 1. Eventos

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

    9

    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.

  • Programacin orientada a objetos II Unidad 1. Eventos

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

    10

    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);

  • Programacin orientada a objetos II Unidad 1. Eventos

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

    11

    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

  • Programacin orientada a objetos II Unidad 1. Eventos

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

    12

    (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.

  • Programacin orientada a objetos II Unidad 1. Eventos

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

    13

    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.

  • Programacin orientada a objetos II Unidad 1. Eventos

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

    14

    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.