Programación del ratón.  

prev.gif (997 bytes)home.gif (1054 bytes)next.gif (998 bytes)

  

El propósito del applet es el de seleccionar el color y el tamaño de una fuente de texto, para dibujar un texto pulsando el botón izquierdo del ratón sobre la superficie de un canvas. El texto se introduce en un control de edición

Pulsando el botón Borrar se limpia la superficie del canvas.

 

EjercicioApplet01 aparecerá en un explorador compatible con JDK 1.1.

 

Diseño

Se diseña el applet dividiendo las tareas entre la clase que deriva de Applet (el interfaz de usuario) y la clase que deriva de Canvas (la representación gráfica).

En modo diseño (pestaña Design) situar en su parte superior un panel denominado panelControl. Sobre este panel colocar tres paneles (véase la figura)

El primero panelColor contiene un control Label cuyo título es “Colores” y un control Choice (choiceColores) con los nombres de varios colores, por ejemplo, azul, rojo, negro, y verde.

El segundo, panelTamano contiene un Label cuyo título es “Tamaño” y un control Choice (choiceTamano) con los siguientes datos  12, 16, 24, 32.

El tercero panelIntro contiene un control Button (buttonBorrar) cuyo título es “Borrar” y un control TextField (textIntro) con un texto inicial “Escribir aquí”.

 

Respuesta a las acciones del usuario

Crear un único listener y una única función respuesta para los dos controles tipo Choice. En dicha función respuesta, crear un objeto de tipo Font, usando como fuente “TimesRoman”, estilo negrita, y el tamaño seleccionado en el control choiceTamano.

Crear un objeto de la clase Color dependiendo de nombre del color seleccionado en el control choiceColor.

Usar las funciones getSource() y getItem() de la clase ItemEvent, para conocer sobre cuál de los dos controles del tipo Choice se está actuando y cuál es el elemento (item) que ha sido seleccionado en dicho control.

En esta función respuesta, llamar a la función apropiada de la clase derivada de Canvas para pasarle información acerca del color y de la fuente de texto (el objeto de la clase Font y el objeto de la clase Color) al objeto canvas.

 

Crear un annonymous adapter para responder a las acciones del usuario sobre el botón titulado Borrar.

En la función respuesta llamar a la función apropiada de la clase derivada de Canvas para limpiar el canvas de los textos dibujados.

 

Crear un objeto de una clase que se encargue de filtrar los caracteres que se introducen en el control de edición textIntro. De modo, que solamente aparezcan caracteres alfabéticos y no aparezcan los caracteres numéricos

 

 

La clase que derivada de Canvas.

La clase que deriva de Canvas ha de implementar el interface MouseListener para responder a la acción de pulsar el botón izquierdo del ratón.

 

En la función respuesta a la pulsación del botón izquierdo del ratón, mousePressed, se realizan la siguiente tarea: se dibuja el texto con el color y la fuente de texto seleccionada en la posición en la que se ha pulsado el botón izquierdo del ratón.

 

Mejora del programa

La información sobre el texto, el color, la fuente y las coordenadas del punto donde se ha pulsado el botón izquierdo del ratón se guardan en sus respectivos arrays para que se vuelvan a repintar cada vez que se oculta parcialmente o totalmente la superficie del applet.  Cada vez que se pulsa el botón izquierdo del ratón, se guarda en arrays, las coordenadas del punto, la fuente de texto, el color empleado, y el texto dibujado.

 

Redefinir paint para dibujar en el canvas los textos guardados en el array, con los colores, fuentes y tamaños empleados y en la posición original.