## Eventos Generados por Componentes Swing

Esta sección sumariza los eventos que pueden ser generados por componentes Swing, enfocándose en los eventos que manejan típicamente los programas. Los eventos generados por componentes Swing se dividen en tres categorías:

- Eventos que todos los componentes Swing pueden generar
- Otros eventos comunes
- Eventos no manejados comunmente

#### Eventos que todos los componentes Swing pueden generar

> Como todos los componentes Swing descienden de la clase Component del AWT, todo ellos soportan los siguientes eventos definidos enel AWT:
> Component
>   Notifica a los oyentes cambios en el tamaño, posición o visibilidad del componente.
> Focus
>   Notifica a los oyentes que el componente a ganado o perdido la posibilidad de recibir entreda desde el teclado.
> Key
>   Notifica a los oyentes las pulsaciones de teclas; sólo generado por el componene que tiene el foco del teclado.
> Mouse
>   Notifica a los oyentes las pulsaciones del ratón y los movimientos de entrada y salida del usuario en el área de dibujo del componente.
> Mouse Motion
>   Notifica a los oyentes cambios en la posición del cursor sobre el componente.

> Aunque todos los componentes Swing descienden de la clase Container del aWT, muchos de ellos no son usados como contenedores. Por eso, técnicamente hablando cualquier componente Swing puede generar eventos container, que notifican a los oyentes que se ha añadido o eliminado un componente del contenedor. Sin embargo, hablando en forma real sólo los contenedores como los paneles, marcos, etc., generan eventos container.

#### Otros Eventos comunes

> La siguiente tabla lista los eventos más comunmente manejados que varios componentes Swing pueden generar.

> > Nota: un asterisco '*' en un cabecera de columna indica un evento definido en el AWT. Todos los otros eventos de la tabla está definidos en javax.swing.event.

> Componente Swing | Tipos de Eventos Generados
> action * | caret | change | document | internal frame | item * | list selection | undoable edit | window *
> ColorSelectionModel (JColorChooser'smodelo de seleccion por defecto.) Nota: Esta no es una subclase de JComponent! |  |  | X |  |  |  |  |  |
> Document (JTextComponent's modelo de datos.) Nota: Esta no es una sublcase de JComponent! |  |  |  | X |  |  |  | X |
> JButton | X |  | X |  |  | X |  |  |
> JCheckBox | X |  | X |  |  | X |  |  |
> JComboBox | X |  |  |  |  | X |  |  |
> JDialog |  |  |  |  |  |  |  |  | X
> JEditorPane |  | X |  |  |  |  |  |  |
> JFileChooser | X |  |  |  |  |  |  |  |
> JFrame |  |  |  |  |  |  |  |  | X
> JInternalFrame |  |  |  |  | X |  |  |  |
> JList |  |  |  |  |  |  | X |  |
> JMenuItem | X |  | X |  |  | X |  |  |
> JOptionpane |  |  |  |  |  |  |  |  | X
> JPasswordField | X | X |  |  |  |  |  |  |
> JProgressBar |  |  | X |  |  |  |  |  |
> JRadioButton | X |  | X |  |  | X |  |  |
> JSlider |  |  | X |  |  |  |  |  |
> JTabbedPane |  |  | X |  |  |  |  |  |
> JTextArea |  | X |  |  |  |  |  |  |
> JTextComponent |  | X |  |  |  |  |  |  |
> JTextField | X | X |  |  |  |  |  |  |
> JTextPane |  | X |  |  |  |  |  |  |
> JToggleButton | X |  | X |  |  | X |  |  |
> JViewport |  |  | X |  |  |  |  |  |
> ListSelectionModel (JList's modelo de selección por defecto.) Nota: Esta no es una subclase JComponent! |  |  |  |  |  |  | X |  |
> Timer Nota: Esta not es una subclase JComponent! | X |  |  |  |  |  |  |  |

#### Eventos no manejados comunmente

> Como recordatorio, esta sección lista otros eventos que los componentes Swing pueden generar pero que los programas típicos no necesitan manejar.

> Todos los componentes que descienden de la clase JComponent pueden generar los eventos descritos en la siguiente lista:

> Ancestor
>   Un componente genera un evento Ancestor cuando uno de sus contenedores acenstros es añadido o eliminado de un contenedor, es ocultado, visualizado o movido. Este tipo de evento es una implementación detallada y generalmente puede ser ignorado.
> Property Change
>   Definido en java.beans los componentes Swing generan este tipo de eventos porque son compatibles con JavaBeans. Los Beans utilizan los eventos Change para implementar propiedades compartidas.
> Vetoable Change
>   Definido en java.beans los componentes Swing generan este tipo de eventos porque son compatibles con JavaBeans. Los Beans utilizan estos eventos para implementar propiedades restringidas.
> La siguiente tabla lista todos los otos eventos definidos en javax.swing.event que no se han mencionado anteriormente.

> > Eventos de Editor de Celdas | Eventos de Teclas de Menú | Eventos de Expansión de Árboles
> > Hyperlink | Menu | Tree Model
> > List Data | Popup Menu | Tree Selection
> > Menu Drag Mouse | Table Model | Tree Will Expand

Ozito