Un objeto Component genera uno o m�s eventos componente justo despu�s de que el componente haya sido ocultado, hecho visible, movido o redimensionado. Un ejemplo de oyente de component podr�a estar en una herramienta de construcci�n de GUI que muestra informaci�n sobre el tama�o del componente seleccionado, y que necesita saber cuando cambia el tama�o del componente. Normalmente no se necesita manejar eventos componente para controlar la distribuci�n b�sica ni el redibujado.
Los eventos component-hidden y component-visible s�lo ocurren como resultados de llamadas al m�todo setVisible de Component. Por ejmplo, una ventana podr�a ser miniaturizada en un icono iconificada) sin que se generar� ning�n evento component-hidden.
�M�todos de Evento Component
El interface ComponentListener y su correspondiente clase adpatador ComponentAdapter, contienen cuatro m�todos.
- void componentHidden(ComponentEvent)
- Se le llama despu�s de ocultar el componente esuchado como resultado de una llamada al m�todo setVisible.
- void componentMoved(ComponentEvent)
- Se le llama cuando el componente escuchado se mueve en relaci�n a su contenedor. Por ejemplo, si se mueve una ventana, genera un evento component-moved, pero el componente que la contiene no lo genera.
- void componentResized(ComponentEvent)
- Se le llama despu�s de que cambie el tama�o del componente escuchado.
- void componentShown(ComponentEvent)
- Se le llama despu�s de que componente escuchado se vuelva visible como resultado de una llamada al m�todo setVisible.
�Ejemplos de Manejo de Eventos Component
El siguiente applet demuestra los eventos component. El applet contiene un bot�n que trae una ventana (JFrame). La ventana contiene un panel que tiene una etiqueta y un checkbox. El checkbox controla si la etiqueta es visible. Cuando abandonamos la p�gina del applet, la ventana desaparece, y reaparece cuando volvemos a la p�gina del applet. El �rea de texto muestra un mensaje cada vez que la ventana, el panel, la etiqueta o el checkbox generan un evento component.
Esta es una imagen del GUI del applet. Para ejecutarlo, pulsa sobre ella. El applet aparecer� en una nueva ventana de tu navegador.
Prueba esto:
|
El c�digo del applet los puedes encontrar en ComponentEventDemo.java. Aqu� puedes ver s�lo el c�digo relacionado con el manejo de eventos component.
public class ComponentEventDemo ... implements ComponentListener { ... //where initialization occurs: aFrame = new JFrame("A Frame"); ComponentPanel p = new ComponentPanel(this); aFrame.addComponentListener(this); p.addComponentListener(this); ... public void componentHidden(ComponentEvent e) { displayMessage("componentHidden event from " + e.getComponent().getClass().getName()); } public void componentMoved(ComponentEvent e) { displayMessage("componentMoved event from " + e.getComponent().getClass().getName()); } public void componentResized(ComponentEvent e) { displayMessage("componentResized event from " + e.getComponent().getClass().getName()); } public void componentShown(ComponentEvent e) { displayMessage("componentShown event from " + e.getComponent().getClass().getName()); } } class ComponentPanel extends JPanel ... { ... ComponentPanel(ComponentEventDemo listener) { ...//after creating the label and checkbox: label.addComponentListener(listener); checkbox.addComponentListener(listener); } ... }
�La clase ComponentEvent
Cada m�todo de evento Component tiene un s�lo par�metro, un objeto ComponentEvent. La clase ComponentEvent define los siguientes m�todos muy �tiles.
- Component getComponent()
- Devuelve el componente que gener� el evento. Podemos utilizarlo en lugar del m�todo getSource.