## Manejo de Eventos Comunes

Esta sección explica cómo podemos escribir un oyente para eventos que puedan ser generados por un componente Swing. Primero ofrece una introducción a los oyentes. Después, cada tipo de oyente se explica en su propia página.

En la tabla que sigue, cada fila describe un grupo de eventos particular correspondiente a un interface oyente. La primer columna ofrece el nombre el interface, con un enlace a la página del tutorial que lo describe. La segunda columna nombra la correspondiente clase adaptador, si existe. La tercera columna indica el paquete en que se definen el interface, la clase event y la case adaptador. La cuarta columna lista los métodos que contiene el interface.

Para ver los tipos de eventos que pueden generar los componentes Swing, puedes volver a la página: see Eventos Generados por Componentes Swing.

Interface | Clase Adaptador | Paquete | Métodos
--- | --- | --- | ---
ActionListener | ninguna | java.awt.event | actionPerformed
CaretListener | ninguna | javax.swing.event | caretUpdate
ChangeListener | ninguna | javax.swing.event | stateChanged
ComponentListener | ComponentAdapter | java.awt.event | componentHidden componentMoved componentResized componentShown
ContainerListener | ContainerAdapter | java.awt.event | componentAdded componentRemoved
DocumentListener | ninguna | javax.swing.event | changedUpdate insertUpdate removeUpdate
FocusListener | FocusAdapter | java.awt.event | focusGained focusLost
InternalFrameListener | InternalFrameAdapter | javax.swing.event | internalFrameActivated internalFrameClosed internalFrameClosing internalFrameDeactivated internalFrameDeiconified internalFrameIconified internalFrameOpened
ItemListener | ninguna | java.awt.event | itemStateChanged
KeyListener | KeyAdapter | java.awt.event | keyPressed keyReleased keyTyped
ListSelectionListener | ninguna | javax.swing.event | valueChanged
MouseListener | MouseAdapter MouseInputAdapter * | java.awt.event javax.swing.event | mouseClicked mouseEntered mouseExited mousePressed mouseReleased
MouseMotionListener | MouseMotionAdapter MouseInputAdapter * | java.awt.event javax.swing.event | mouseDragged mouseMoved
UndoableEditListener | none | javax.swing.event | undoableEditHappened
WindowListener | WindowAdapter | java.awt.event | windowActivated windowClosed windowClosing windowDeactivated windowDeiconified windowIconified windowOpened

* Swing proporciona la clase MouseInputAdapter por conveniencia. Implementa los interfaces MouseListener y MouseMotionListener haciendo más fácil para nosotros el manejo de ambos tipos de eventos.

Los eventos descritos en la tabla anterior pueden dividirse en dos grupos: eventos de bajo nivel y eventos semánticos. Los eventos de bajo nivel representan las ocurrencias del sistema windows o entradas de bajo nivel. Claramente, los eventos de ratón y de tecla -- ambos como resultado de la entrada directa del usuario -- son eventos de bajo nivel.

Los eventos component, container, focus, y window también son de bajo nivel. Los eventos Component permite seguir los cambios en la posición, el tamaño y visibilidad del componente. El evento Container permite conocer cuando se añade o elimina cualquier componente a un contenedor particular. El evento Focus indica cuando un componente gana o pierde el foco del teclado -- la habilidad de recibir caracteres pulsados en el teclado. Los eventos windows nos informan del estado básico de cualquier ventana, como un Dialog o un Frame.

Los eventos de ratón se dividen en dos grupos -- mouse motion y mouse -- por eso un objeto puede escuchar eventos de mouse como las pulsaciones sin necesidad de sobrecargar el sistema intentando conocer exactamente los movimientos del ratón, lo que tiende a ocurrir frecuentemente.

Los eventos semánticos incluyen los eventos action, change, document, e item. Estos eventos son el resultado de una interación específica del usuario con un componente expecífico. Por ejemplo, un botón genera un evento action cuando el usuario lo pulsa, y una lista genera un evento action cuando el usuario hace doble clicj sobre uno de sus ítems. Cuando un usuarui selecciona un ítem de entre un grupo de ítems (como una lista), se genera un evento item.

Ozito