Se trata del último volumen teórico en los referido a las GUIs, por lo que las entregas consecutivas además de dar la solución al ejercicio propuesto, haremos algún ejercicio más de lo que hoy vamos a tratar, los eventos de bajo nivel en las GUIs.
Además de los ya conocidos ActionEvent, ChangeEvent, ItemEvent y ListSelectionEvent y que hemos tratado en este curso, existen algunos más que se encuentran relacionados por ejemplo con las pulsaciones del ratón del PC.
Por lo tanto, vamos con el contenido de la entrega de este lunes.
Existen otros eventos (denominados de bajo nivel) que se producen cuando:
- La ventana cambia de tamaño o de estado
- Se pulsa una tecla sobre un componente
- El ratón entra o sale de un componente
- Se produce un movimiento de ratón (MouseEvent)
Únicamente veremos los generados por el ratón que son los que más utilidad les vamos a poder dar.
- Eventos de la clase MouseEvent
Existen dos tipos de eventos MouseEvent:
- De movimiento: se generan cuando:
- El cursor del ratón se desplaza por la ventana
- De estado del ratón: se generan cuando:
- Se presiona, se suelta o se hace clic en un botón del ratón
- El cursor del ratón entra o sale de un componente
Los eventos MouseEvent de movimiento se manejan utilizando una clase que implemente la interfaz MouseMotionListener:
Si se prefiere puede extenderse la clase MouseMotionAdapter que implementa los dos métodos con cuerpo nulo. La asociación de la clase manejadora con el componente se realiza mediante el método:
void addMouseMotionListener(MouseMotionListener l)
Los eventos MouseEvent de estado del ratón se manejan utilizando una clase que implemente la interfaz MouseListener:
Para que no sea necesario escribir una clase que implemente los cinco métodos de la interfaz MouseListener existe la clase:
El programador puede extender la clase MouseAdapter y sobrescribir únicamente los métodos en los que esté interesado La asociación de la clase manejadora con el componente se realiza mediante el método:
void addMouseListener(MouseListener l)
Por ejemplo un caso práctico de utilización de esta clase es la acción de doble click que tan útil no resulta en cualquier sistema operativo. ¿Cómo podemos implementarlo en Java?
Basándonos en los visto en este volumen, deberíamos tener una lista a la cual la añadiríamos un MouseListener, por lo tanto todos los elementos de esa lista podrán disfrutar desde ese momento de la función ManejadorDocleClicEnLista. Donde se encuentran los comentarios de color rojo puede poner cualquier cosa, desde modificar el contenido de esa posición en la lista hasta mostrar por pantalla el elemento de la lista que se ha seleccionado.
Hasta aquí hemos llegado con la entrega de hoy, en la próxima entrega daremos una solución detallada del ejercicio que hemos dejado pendiente en la entrega anterior.