##
ACTION_EVENT

Algunos de los eventos que más frecuentemente tendremos que controlar son los siguientes:

> ACTION_EVENT
> MOUSE_DOWN
> KEY_PRESS
> WINDOW_DESTROY

En la documentación de la clase Event se encuentra toda la lista de eventos que cualquier aplicación puede necesitar manejar y su documentación; como ejemplo de uso vamos a detenernos en el primero de ellos, ACTION_EVENT.

Como ejemplo del manejo de eventos vamos a ver este evento que se provoca al pulsar un botón, seleccionar un menú, etc. Para su control podemos manejarlo en el método handleEvent() o en el método action().

Los dos métodos anteriores pertenecen a la clase Component por lo que todas las clases derivadas de ésta contendrán estos dos métodos y se pueden sobrecargar para que se ajuste su funcionamiento a lo que requiere nuestra aplicación.

Veamos el siguiente ejemplo, en que se controla este evento a través del método handleEvent(), que es el método general de manejo de eventos:

        public boolean handleEvent( Event evt ) {
            switch( evt.id ) {
                case Event.ACTION_EVENT:
                    // evt.arg contiene la etiqueta del botón pulsado
                    // o el item del menú que se ha seleccionado
                    if( ( "Pulsado "+n+" veces" ).equals( evt.arg ) )
                        return( true );
                default:
                        return( false );
                }
            }

Pero en este caso, cuando se produce este evento se llama al método action(), que sería:

        public boolean action( Event evt,Object arg ) {
            if( ( "Pulsado "+n+" veces" ).equals( arg ) )
                return( true );
            return( false );
            }

Como se puede comprobar, incluso si las etiquetas cambian se puede recibir el evento. Los ejemplos anteriores corresponden al control de un evento producido por un botón que cambia su etiqueta cada vez que se pulsa. Aunque esta no es la única forma de manejar eventos; de hecho se puede hacer:

        if( evt.target == miBoton )

en donde se comparan objetos en lugar de etiquetas.

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