##
TIPOS DE EVENTOS

Los eventos se catalogan por su naturaleza, que se indicará en el miembro `id` de su estructura. Los grandes grupos de eventos son:

### Eventos de Ventana

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

- WINDOW_DESTROY
- WINDOW_EXPOSE
- WINDOW_ICONIFY
- WINDOW_DEICONIFY
- WINDOW_MOVED

### Eventos de Teclado

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

- KEY_PRESS
- KEY_RELEASE
- KEY_ACTION
- KEY_ACTION_RELEASE

### Eventos de Ratón

Son los eventos generados por acciones sobre el ratón dentro de los límites de un Componente.

- MOUSE_DOWN
- MOUSE_UP
- MOUSE_MOVE
- MOUSE_ENTER
- MOUSE_EXIT
- MOUSE_DRAG

### Eventos de Barras

Son los eventos generados como respuesta a la manipulación de barras de desplazamiento (scrollbars).

- SCROLL_LINE_UP
- SCROLL_LINE_DOWN
- SCROLL_PAGE_UP
- SCROLL_PAGE_DOWN
- SCROLL_ABSOLUTE

### Eventos de Lista

Son los eventos generados al seleccionar elementos de una lista.

- LIST_SELECT
- LIST_DESELECT

### Eventos Varios

Son los eventos generados en función de diversas acciones.

- ACTION_EVENT
- LOAD_FILE
- SAVE_FILE
- GOT_FOCUS
- LOST_FOCUS

El applet EventosPrnt.java está diseñado para observar los eventos que se producen sobre él. Cada vez que se genera un evento, el applet responde imprimiendo el evento que ha capturado en la línea de comandos desde donde se ha lanzado el applet.

Una vez que se haya compilado el código y cargado el applet en el appletviewer o en un navegador con soporte Java, jugar un poco con el applet. Mover el cursor dentro del applet, picar con el ratón, picar y arrastrar, teclear algo, cambiar el tamaño de la ventana y taparla y destaparla con otra. Las acciones anteriores harán que en la ventana en donde se haya lanzado el appletviewer, o en la consola Java en caso de Netscape, vayan apareciendo los textos que indican los eventos que está recibiendo el applet.

Lo cierto es que el uso de `System.out.println()` en un applet es algo que no debería utilizarse, e incluso puede llegar a no funcionar en algunos sistemas, pero tenía la ventaja de ser la forma más fácil de ver los eventos. No obstante, vamos a reescribir el código del applet utilizando una Lista.

Una Lista es una lista de cadenas o Strings definidas en java.awt.List. Crearemos una lista de 25 líneas y no permitiremos selección múltiple, que son los dos parámetros que necesita el constructor del objeto List. El código EventosList.java que se muestra a continuación corresponde al anterior ejemplo un poco modificado.

    import java.awt.*;
    import java.applet.Applet;

    public class EventosList extends Applet {
        List lista;

        public void init() {
            lista = new List( 25,false );
            add( lista );
            lista.addItem( "Evento init" );
            }

        public void start() {
            lista.addItem( "Evento start" );
            }

        public void destroy() {
            lista.addItem( "Evento destroy" );
            }

        public void paint( Graphics g ) {
            lista.addItem( "Evento paint" );
            }

        public void update( Graphics g ) {
            lista.addItem( "Evento update" );
            }

        public boolean mouseUp( Event evt,int x, int y ) {
            lista.addItem( "Evento mouseUp en ("+x+","+y+")" );
            return false;
            }

        public boolean mouseDown( Event evt,int x, int y ) {
            lista.addItem( "Evento mouseDown en ("+x+","+y+")" );
            return false;
            }

        public boolean mouseDrag( Event evt,int x, int y ) {
            lista.addItem( "Evento mouseDrag en ("+x+","+y+")" );
            return false;
            }

        public boolean mouseMove( Event evt,int x, int y ) {
            lista.addItem( "Evento mouseMove en ("+x+","+y+")" );
            return false;
            }

        public boolean mouseEnter( Event evt,int x, int y ) {
            lista.addItem( "Evento mouseEnter en ("+x+","+y+")" );
            return false;
            }

        public boolean mouseExit( Event evt,int x, int y ) {
            lista.addItem( "Evento mouseExit" );
            return false;
            }

        public boolean keyDown( Event evt,int x ) {
            lista.addItem( "Evento keyDown,carácter "+(char)x );
            return true;
            }

        public void getFocus() {
            lista.addItem( "Evento getFocus" );
            }

        public void gotFocus() {
            lista.addItem( "Evento gotFocus" );
            }

        public void lostFocus() {
            lista.addItem( "Evento lostFocus" );
            }
        }

El applet VisorEventos.java muestra los datos que componen cada evento que se produce. Hemos incorporado un botón y una lista, tal como se puede apreciar en la figura, para poder generar diferentes eventos.

Moviendo el ratón o actuando sobre los dos Componentes, botón y lista, podemos observar los datos que el sistema Java envía en la recolección de esos eventos.

|  | ##### [Anterior] [Indice] [Siguiente]