Si os acordáis, en la última entrega comenzamos ya con los manejadores de los componentes y a descubrir como podían programarse sus funciones. Además, os propusimos un breve ejercicio en el cual teníamos que poner en práctica lo aprendido en dicha sesión.
En la entrega de hoy daremos solución a dicho ejercicio y explicaremos como se podía hacer y continuaremos con las funciones de los componentes, en este caso hablaremos de ItemEvent. Explicaremos sobre que componentes puede aplicarse y os propondremos un sencillo ejercicio para que pongáis todo en práctica.
Para recordar el enunciado de manera breve, debíamos construir una aplicación que tuviera un panel para dibujar y dos botones, uno para dibujar un cuadrado y otro para dibujar un círculo. Inicialmente el tablero debería parecer vacío y después con cada pulsación debería aparecer o bien un cuadrado o bien un círculo.
La solución:
PanelDibujos
Añadimos la variable figura que indicará al método de pintado, qué figura debe dibujar. Esta variable será modificada por cada pulsación de los botones y se modificará en los manejadores que cada botón llamando al método asignaFunción().
En el método de pintado, dependiendo del valor que tenga la variable se pintará una cosa u otra. O bien al principio no se pintará nada y estará vacío.
Aplicación:
Eliminamos varios componentes y añadimos los dos botones. Al final del constructor de la ventana tenemos que añadir las funcionalidades de cada botón. Para posteriormente hacer cada una de las clases manejadoras donde se modificará la variable que determina qué figura pintar.
Después de haber dado la solución al ejercicio vamos a continuar un poco con la teoría.
Se manejan utilizando una clase que implemente la interfaz:
[java]public interface ItemListener extends EventListener{
public void itemStateChanged(ItemEvent evt);
}[/java]
La asociación de la clase manejadora con el componente se realiza mediante el método:
void addItemListener(ItemListener l)
Para acabar, os vamos a proponer un ejercicio: en el ejercicio del cual os hemos dado la solución, sustituir los botones por los checkbox. Si están los dos seleccionados deberán aparecer las dos figuras de manera simultánea estando inicialmente ambos checkbox deseleccionados.
En la próxima entrega daremos solución al ejercicio planteado y hablaremos de los otro manejador, el changeEvent. Si tenéis cualquier problema o consulta no dudéis en preguntárnoslo.