Você está na página 1de 10

Distintas clases de Eventos El paquete java.awt.

event define varios tipos de eventos que son generados por varios elementos de interfase de usuario. Entre los ms comunes eventos utilizados estn las siguientes clases: Clase de Evento Descripcin

ActionEvent

Generado cuando un botn es seleccionado, una lista (vista mas adelante) tiene un doble clic o un men es seleccionado

AdjustmentEvent

Generado cuando un barra de desplazamiento es manipulada

ComponentEvent

Generado cuando un componente es escondido, movido, cambiado de tamao, o se hace visible.

ItemEvent

Generado cuando una caja de chequeo (vista mas adelante) es seleccionada con el ratn.

Distintas clases de Escuchadores Los escuchadores son creados para implementar una o ms de las interfases definidas por el paquete java.awt.event. Cuando un evento ocurre el evento fuente invoca el mtodo apropiado definido por el escuchador y provee un objeto tipo evento como su argumento. Entre los ms comunes estan: Clase de Interfase Descripcin

ActionListener

Define un mtodo para recibir eventos de accin (ActionEvent)

AdjustmentListener

Define un mtodo para recibir eventos de deslizadores (AdjustmentEvent)

ComponentListener

Define cuatro componente

mtodo

para

reconocer

cuando

un

es escondido, movido, cambiado de tamao o mostrado (ComponentEvent).

ItemListener

Define un mtodo para reconocer cuando el estado De un campo cambia (ItemEvent).

Es importante que si queremos revisar los mtodos que requerimos entremos a revisar en la documentacin de Java (www.java.sun.com) las clases mostradas anteriormente para saber que mtodos podemos utilizar para implementar el evento deseado. A continuacin mostramos algunos eventos diferentes a los de botn. Eventos de Barra de Desplazamiento En estos eventos hacemos uso de barras de desplazamiento para realizar alguna instruccin o grupo de instrucciones, y para esto es importante tomar eventos de la clase Scrollbar. Los objetos de la clase Srollbar son escuchados a travs de implementar una interfaz llamada AdjustmentListener, la cual utiliza el mtodo adjustmentValueChanged, un mtodo muy parecido al actionPerformed, pero trabaja sobre diferentes elementos de interfaz grfica. Para entender este applet debemos consultar la clase ScrollBar que se encuentra en el paquete java.awt. Esta clase tiene diferentes constructores que pueden ser utilizados para crear el objeto de la barra deslizadora, tomemos uno de los disponibles en la siguiente tabla que aparece en las clases de la API de Java: Tomemos el tercer constructor, el cual es utilizado en este ejemplo, primero esta la orientacin, que es un entero y en este caso utilizaremos uno definido en la misma clase Scrollbar.HORIZONTAL, despus viene un valor que es el valor inicial con el que queremos que empiece la barra deslizadora, despus esta el valor visible, si queremos que se vea definimos un 1, posteriormente el valor mnimo de la barra, y el mximo numero de nmeros a tener. Veamos el applet: import java.awt.*; import java.applet.*; import java.awt.event.*; // <applet width="150" height="200" code="AppletEventos2"></applet> public class AppletEventos2 extends Applet implements AdjustmentListener { Label l;

Scrollbar s; TextField t;

public AppletEventos2() { l = new Label("Valor de la barra de Scroll"); t = new TextField(3); s = new Scrollbar(Scrollbar.HORIZONTAL, 0, 1, 0, 100); add(s); add(l); add(t); s.addAdjustmentListener(this); }

public void adjustmentValueChanged(AdjustmentEvent ae) { int valor = s.getValue(); t.setText(""+valor); } } Dicho applet muestra una barra de scroll que al ser deslizada muestra un valor en el campo texto, como aparece en seguida: Utilizamos el mtodo getValue de la clase Scrollbar para tomar el valor de la barra deslizadora en base al movimiento que el usuario hizo en ella. Otro ejemplo que puede ilustrar mejor el uso de una barra deslizadora es el siguiente: import java.awt.*; import java.applet.*; import java.awt.event.*; // <applet width="150" height="200" code="AppletEventos3"></applet>

public class AppletEventos3 extends Applet implements AdjustmentListener { Scrollbar s; int barra = 0;

public AppletEventos3() { s = new Scrollbar(Scrollbar.HORIZONTAL, 0, 1, 0, 100); add(s); s.addAdjustmentListener(this); }

public void paint(Graphics g) { g.drawRect(40, 80, 60, 100); g.fillRect(40, 80, 60, barra); }

public void adjustmentValueChanged(AdjustmentEvent ae) { barra = s.getValue(); repaint(); } } En este ejemplo al mover la barra deslizadora se ve como va cambiando el llenado del rectngulo, utilizando para ello el mtodo fillRect de la clase Graphics, el cual tiene como parmetros la coordenada en x, la coordenada en y, el ancho y el alto en pixeles, rellenando de color negro dependiendo del valor de la barra, es por esto que en el mtodo paint() se utiliza la variable barra: En el caso de este applet recurrimos a utilizar el mtodo paint() para que se redibuje cada vez que se mueve la barra deslizadora, utilizando el metodo fillRect() rellenamos la parte del rectngulo. Es importante hacer notar que la variable barra se defini al inicio de la clase, para que cualquier mtodo la pueda utilizar sin problemas.

Eventos del Ratn Para implementar este tipo de eventos debemos implementar la interfaz MouseListener y MouseMotionListener. A continuacin se muestra un ejemplo de applet que los utiliza. Cada vez que el botn es presionado la palabra Abajo es desplegada en el lugar donde est el apuntador del ratn. Cada vez que el ratn es liberado, la palabra Arriba es mostrada. Si un botn es oprimido el mensaje Ratn oprimido es desplegado en la esquina superior izquierda del rea del applet. Cada vez que el ratn entra o sale del rea del applet, un mensaje es desplegado. Cuando el ratn es arrastrado, un asterisco es mostrado, el cual es arrastrado con el apuntador del ratn. Es importante notar las dos variables mouseX y mouseY que guardan los lugares del ratn, cuando ocurre uno de los siguientes eventos del ratn: presionado, liberado, o arrastrado. Estas coordenadas son utilizadas dentro del mtodo paint(). import java.awt.*; import java.applet.*; import java.awt.event.*; // <applet width="150" height="200" code="MouseEvents"></applet> public class MouseEvents extends Applet implements MouseListener, MouseMotionListener { String msg = ""; int mouseX = 0; int mouseY = 0; public addMouseListener(this); //a addMouseMotionListener(this); // del } public void mouseClicked(MouseEvent me) { mouseX = 0; mouseY = 10; msg = "Ratn Oprimido"; repaint(); }

void // // se raton

se aade este aande a el

el

init() escuchador escuchador este del

del

{ ratn applet

movimiento applet

// cuando el ratn entra public void mouseEntered(MouseEvent me) { mouseX = 0; mouseY = 10; msg = "Ratn Entra"; repaint(); } // cuando sale el ratn public void mouseExited(MouseEvent me) { mouseX = 0; mouseY = 10; msg = "Ratn Sale"; repaint(); } // cuando se presiona el ratn public void mousePressed(MouseEvent me) { mouseX = me.getX(); // se toma el valor de la coordenada de x mouseY = me.getY(); // se toma el valor de la coordenada de y msg = "Abajo"; repaint(); } // cuando se libera el ratn public void mouseReleased(MouseEvent me) { mouseX = me.getX(); mouseY = me.getY(); msg = "Arriba";

repaint(); } // cuando se arrastra el ratn public void mouseDragged(MouseEvent me) { mouseX = me.getX(); mouseY = me.getY(); msg = "*"; showStatus("Moviendo el raton en " + mouseX + "," + mouseY); repaint(); } // moviendo el ratn public void mouseMoved(MouseEvent me) { showStatus("Moviendo el raton en " + mouseX + "," + mouseY); } // desplegando el mensaje en el applet public void paint(Graphics g) { g.drawString(msg, mouseX, mouseY); } }

Eventos, excepciones y errores En esta entrada explicare que son los eventos, errores y excepciones.

Eventos: Los eventos son todas las acciones que el usuario inicia, dar clic sobre un botn, presionar las teclas del teclado, etc. Cada vez que se produce un evento, se crea un objeto. La clase padre de los eventos es "java.awt.event". Cada lenguaje de programacin tiene su propio modelo de eventos, en Java se definen clases auxiliares llamadas escuchadores (listeners) que reciben eventos especficos.

Los escuchadores se registran en las fuentes de eventos (teclado, ratn, etc). Estas envan objetos del tipo EventObjet la los escuchadores registrados al producirse un evento. Cada escuchador utiliza la informacin recibida a travs del objeto para realizar las acciones adecuadas. Dentro de "java.awt.event", los eventos estn categorizados dentro de una jerarqua de clases.

La clase "java.util.EventObject" es la clase base de todos los eventos en Java. La subclase "java.awt.AWTEvent" es la clase base de todos los eventos que se utilizan en la construccin de GUIs. Cada tipo de evento "xxEvent" tiene asociada una interfaz "xxListener" que es la que nos permite definir escuchadores de eventos. Para simplificar la implementacin de algunos escuchadores de eventos, el paquete "java.awt.event" incluye clases base xxAdapter que implementan las interfaces xxListener. distintos tipos de de eventos, los cuales son: Ventana

Existen Eventos

Son los que se generan en respuesta a los cambios de una ventana, un frame o un dialogo.


Eventos

WINDOW_DESTROY WINDOW_EXPOSE WINDOW_ICONIFY WINDOW_DEICONIFY WINDOW_MOVED de Teclado

Son generados en respuesta a cuando el usuario pulsa y suelta una tecla mientras un Componente tiene el foco de entrada.


Eventos

KEY_PRESS KEY_RELEASE KEY_ACTION KEY_ACTION_RELEASE de Ratn

Son los eventos generados por acciones sobre el ratn dentro de los lmites de un Componente.


Eventos

MOUSE_DOWN MOUSE_UP MOUSE_MOVE MOUSE_ENTER MOUSE_EXIT MOUSE_DRAG de Barras

Son los eventos generados como respuesta a la manipulacin de barras de desplazamiento (scrollbars).

SCROLL_LINE_UP SCROLL_LINE_DOWN SCROLL_PAGE_UP SCROLL_PAGE_DOWN


Eventos

SCROLL_ABSOLUTE de Lista

Son los eventos generados al seleccionar elementos de una lista.


Eventos

LIST_SELECT LIST_DESELECT Varios

Son los eventos generados en funcin de diversas acciones.


Errores:

ACTION_EVENT LOAD_FILE SAVE_FILE GOT_FOCUS LOST_FOCUS

Los errores en la programacin suelen ser comunes, ya que es casi imposible programar sin que exista un solo error, inclusive en productos finales existen errores de software, que casi siempre tratan de corregir con parches de seguridad y actualizaciones. En algn momento por alguna causa, podra generarse algn conflicto en el programa. Ya sea porque no hay conexin a Internet, usuario o contrasea incorrecta, valores alfanumricos en campos solo para nmeros, y en algunos casos el cdigo del programa no esta escrito correctamente, sin embargo, este ultimo se analizara en el siguiente tema (Diseo de pruebas unitarias). Existen formas para detectar y corregir errores en un programa por medio de opciones alternativas llamadas excepciones.

Excepciones: Las excepciones en Java estn destinadas, al igual que en el resto de los lenguajes que las soportan, para la deteccin y correccin de errores. Si hay un error, la aplicacin no debera morirse y generar un core . Se debera lanzar (throw) una excepcin que nosotros deberamos capturar (catch) y resolver la situacin de error. Existen muchos tipos de excepciones,casi una por cada tipo de error, por lo que si tenemos error de entrada/salida de datos, el programa deberia de lanzar una excepcin de tipo IOException. En Java, cada excepcin es una clase hija de "java.lang.Exception", por lo que podemos crear nuestras propias excepciones en lugar de utilizar las ya predefinidas.

En este grfico podemos ver algunos de los errores y excepciones dentro de la clase Throwable que extiende de Object y tiene como hijas a Error y Exception.

Você também pode gostar