##
METODOS DE CONTROL DE EVENTOS

El método handleEvent() es un lugar para que el programador pueda insertar código para controlar los eventos. A veces, sin embargo, un Componente solamente estará interesado en eventos de un cierto tipo (por ejemplo, eventos del ratón). En estos casos, el programador puede colocar el código en un método de ayuda, en lugar de colocarlo en el método handleEvent().

No hay métodos de ayuda para ciertos tipos de eventos, aquí está la lista de los que están disponibles para los programadores:

        action( Event evt,Object obj )
        gotFocus( Event evt,Object obj )
        lostFocus( Event evt,Object obj )
        mouseEnter( Event evt,int x,int y )
        mouseExit( Event evt,int x,int y )
        mouseMove( Event evt,int x,int y )
        mouseUp( Event evt,int x,int y )
        mouseDown( Event evt,int x,int y )
        mouseDrag( Event evt,int x,int y )
        keyDown( Event evt,int key )
        keyUp( Event evt,int key )

false indicará que el método de ayuda no maneja el evento.

La implementación del método handleEvent() proporcionada por la clase Component invoca a cada método de ayuda. Por esta razón, es importante que las implementaciones redefinidas del método handleEvent() en clases derivadas, siempre finalicen con la sentencia:

        return( super.handleEvent( evt ) );

El siguiente trozo de código ilustra esta regla.

        public boolean handleEvent( Event evt ) {
            if( evt.target instanceof MiBoton )
                {
                // Hace algo...
                return true;
                }

            return( super.handleEvent( evt ) );
            }

No seguir esta regla tan simple hará que no se invoquen adecuadamente los métodos de ayuda. El applet EventosRaton.java, que controla los eventos de ratón exclusivamente a través de código insertado en sus métodos de ayuda; va dibujando una línea (rubber band) entre el último punto donde se ha producido un click de ratón y la posición actual del cursor.

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