EVENTOS

Manejo de eventos:
Teoría fundamental. Funciones de retro invocación. Manejo de eventos GUI: de acción, de ventana, del ratón y de enfoque.
Primero hay que saber ¿Que es un EVENTO?
Las aplicaciones de Java pueden crear interfaces de usuario, y así permitir que estos últimos lleven a cabo tareas de aplicaciones. Dentro de estas interfaces el código de Java debe ser capaz de responder a la interacción y adaptar el procesamiento a las acciones que el usuario realice. Los eventos de Java son un elemento clave para esta técnica, ya que proporcionan programas con la capacidad para detectar dicha interacción del usuario.

MANEJO DE EVENTOS GUI
Las GUI están controladas por eventos, alguno de estos eventos son, mover el Mouse, seleccionar o escribir en un campo de texto, hacer click en un botón, ya sea en la pantalla o en el Mouse etc.

Cuando ocurre una interacción con el usuario, se envía un mensaje al programa. La información de los eventos de la GUI se almacena en un objeto de la clase que extiende a AWTEvent.

Los Tipos de eventos del paquete java.awt.event se utilizan con componentes de AWT y de Swing. Los tipos de eventos adicionales, específicos para SPNG, se declaran en el paquete javax.swing.event.
El mecanismo de eventos consta de tres partes: 

·         El origen del evento 
·         El objeto del evento 
·         El componente de escucha del evento 

Origen del eventoEs el componente de la GUI específico con el cual interactúa el usuario.

Objeto del eventoEs el encargado de encapsular la información acerca del evento que ocurrió. Esta información incluye una referencia al origen del evento y cualquier información específica del evento que pueda ser requerida por el objeto escucha.

Objeto escuchaEs un objeto que recibe la notificación del origen del evento cuando este ocurre; en efecto “escucha” a la espera de un evento y se ejecuta en respuesta a ese evento.

El programador debe realizar dos tareas clave para procesar un evento de interfaz grafica de usuario en un programa. 

·         Primero: debe registrar un componente de escucha del evento para el componente de la GUI que se espera que genere ese evento. 
·         Segundo: debe implementar un manejador para ese evento.

Básicamente un componente de escucha para un evento GUI es un objeto de una clase que implementa a una o más de las “interfaces de componentes” de escucha de eventos de los paquetes java.awt.event y javax.swing.event.

Cada interfaz de escucha de eventos especifica uno o más métodos manejadores de eventos que deben declararse en la clase que lo implemente (que implemente dicha interfaz) esto es porque la interfaz al ser abstracta y como toda clase abstracta debe implementar todos sus métodos.

En el momento que ocurre un evento, el componente de la GUI con el que el usuario interactuó notifica a sus componentes de escucha registrados, llamando al método manejador de eventos apropiado de cada componente de escucha.

En Java podemos distinguir dos clases de eventos:
  • Eventos generales o simples: son eventos producidos por una acción general. Por ejemplo, pulsar una tecla, mover el ratón...etc. En la tabla siguiente se muestran los eventos estándar para el teclado y el ratón:
      EVÉNTOS ESTÁNDAR PARA TECLADO Y RATÓN
           ID del evento
                Método
              Descripción
   KEY_PRESS 
   keyDown(Event,int)
  Pulsar una tecla
   KEY_RELEASE
   keyUp(Event,int)
  Soltar una tecla
   KEY_ACTION
   keyDown(Event,int)
  Pulsar una tecla de función
   KEY_ACTION_RELEASE
   keyUp(Event,int)
  Soltar una tecla de función
   MOUSE_DOWN
   mouseDown(Event,int,int)
  Pulsar el ratón
   MOUSE_UP
   mouseUp(Event,int,int)
  Movimiento hacia arriba del
  ratón
   MOUSE_MOVE
   mouseMove(Event,int,int)
  Movimiento del ratón
   MOUSE_ENTER
   mouseEnter(Event,int,int)
  Movimiento de entrada del
  ratón
   MOUSE_EXIT
   mouseExit(Event,int,int)
  Movimiento de salida del ratón
   MOUSE_DRAG
   mouseDrag(Event,int,int)
  Arrastrar el ratón
















  • Eventos específicos: son los eventos que más nos interesan en este capítulo y son los eventos que se utilizan con más frecuencia en AWT. Imagine, por ejemplo, un caso en el que tengamos varios botones. Si cada botón, al ser pulsado, no generase un evento único ¿cómo reconoceríamos el botón que ha sido pulsado?. Por esta razón, existen los llamados eventos específicos, en el sentido de que contienen más información que los eventos generales sobre el componente que ha generado el evento.
Los eventos generados por componentes aparecen en la siguiente tabla:
 

EVENTOS GENERADOS POR COMPONENTES
           Componente
            ID del evento
             Descripción
   Button
  ACTION_EVENT
El usuario ha hecho click.
  Check Box
  ACTION_EVENT
El usuario ha pulsado una casilla
de activación.
  Choice
  ACTION_EVENT
El usuario ha seleccionado un
elemento.
  Component
  GOT_FOCUS
Obtiene el foco de entrada.
  Component
  KEY_ACTION
El usuario ha pulsado una tecla
de función.
  Component
  KEY_ACTION_RELEASE
El usuario ha soltado una tecla
de función.
  Component
  KEY_PRESS
El usuario ha pulsado una tecla.
  Component
  KEY_RELEASE
El usuario ha soltado una tecla.
  Component
  LOST_FOCUS
Se ha perdido el foco de entrada.
  Component
  MOUSE_ENTER
El ratón ha entrado en un
componente.
  Component
  MOUSE_EXIT
El ratón ha salido de un
componente.
  Component
  MOUSE_DOWN
Se ha pulsado un botón del
ratón.
  Component
  MOUSE_UP
Se ha soltado un botón del
ratón.
  Component
  MOUSE_MOVE
El usuario ha movido el ratón.
  Component
  MOUSE_DRAG
Se arrastró el ratón.
  List
  ACTION_EVENT
El usuario ha hecho doble click
sobre una lista de elementos.
  List
  LIST_SELECT
El usuario ha seleccionado un
elemento de la lista.
  List
  LIST_DESELECT
El usuario ha anulado la sele-
cción de un elemento de la lista.
  Menu Item
  ACTION_EVENT
Se ha seleccionado un elemento
del menú.
  ScrollBar
  SCROLL_LINE_UP
El usuario ha solicitado un des-
plazamiento ascendente de una
línea.
  ScrollBar
  SCROLL_LINE_DOWN
El usuario ha solicitado un des-
plazamiento descendente de una
línea.
  ScrollBar
  SCROLL_PAGE_UP
El usuario ha solicitado un des-
plazamiento ascendente de una
página.
  ScrollBar
  SCROLL_PAGE_DOWN
El usuario ha solicitado un des-
plazamiento descendente de una
página.
  ScrollBar
  SCROLL_ABSOLUTE
El usuario ha solicitado un cam-
bio absoluto.
  TestField
  ACTION_EVENT
Se ha pulsado la tecla "Return".
  Window
  WINDOW_DESTROY
La ventana se ha destruido.
  Window
  WINDOW_ICONIFY
La ventana se ha transformado
en icono.
  Window
  WINDOW_DEICONIFY
El icono se ha transformado en
ventana.
  Window
  WINDOW_MOVED
Se ha movido la ventana.

0 comentarios:

Publicar un comentario