Tutorial de Java

Fuentes de Eventos

Anterior | Siguiente
Todas las fuentes de eventos del AWT soportan el multienvío a receptores. Esto significa que se pueden añadir o quitar múltiples receptores de una sola fuente; en otras palabras, la notificación de que se ha producido un mismo evento se puede enviar a uno o más objetos receptores simultáneamente.

El API de Java no garantiza el orden en que se enviarán los eventos a los receptores que están registrados en un objeto fuente, para ser informados de esos eventos. En caso de que el orden en que se distribuyen los eventos sea un factor importante en el programa, se deberían encadenar los receptores de un solo objeto receptor registrado sobre el objeto fuente; el hecho de que los datos del evento estén encapsulados en un solo objeto hace que la propagación del evento sea extremadamente simple.

Como en el caso de los receptores, se puede hacer una distinción entre los eventos de bajo nivel y los eventos de tipo semántico. Las fuentes de eventos de bajo nivel serán las clases de elementos o componentes visuales del interfaz gráfico (botones, barras de desplazamiento, cajas de selección, etc.), porque cada componente de la pantalla generará sus eventos específicos. El JDK 1.2 permite registrar receptores sobre fuentes de eventos de los siguientes tipos:

    java.awt.Component
      addComponentListener
      addFocusListener
      addKeyListener
      addMouseListener
      addMouseMotionListener
    java.awt.Container
      addContainerListener
    java.awt.Dialog
      addWindowListener
    java.awt.Frame
      addWindowListener

Para determinar todos los tipos de eventos que se pueden comunicar desde un objeto fuente a un receptor, hay que tener en cuenta la herencia. Por ejemplo, como se verá en uno de los programas que se presentarán, un objeto puede detectar eventos del ratón sobre un objeto Frame y notificar a un objeto MouseListener de la ocurrencia de estos eventos, aunque en la lista anterior no se muestre un MouseListener sobre un Frame. Esto es posible porque un objeto Frame extiende indirectamente la clase Component y, MouseListener está definido en la clase Component.

Los receptores de eventos que se pueden registrar de tipo semántico sobre objetos fuentes, generadores de eventos, en el JDK 1.2 son:

    java.awt.Button
      addActionListener
    java.awt.Choice
      addItemListener
    java.awt.Checkbox
      addItemListener
    java.awt.CheckboxMenuItem
      addItemListener
    java.awt.List
      addActionListener
      addItemListener
    java.awt.MenuItem
      addActionListener
    java.awt.Scrollbar
      addAdjustmentListener
    java.awt.TextArea
      addTextListener
    java.awt.TextField
      addActionListener
      addTextListener

Navegador

Home | Anterior | Siguiente | Indice | Correo