538

Capítulo 11 Componentes de la GUI: parte 1

Sobrescriba el método 

mouseMoved

 para establecer el texto de 

etiquetaEstado

, de manera que muestre las coor-

denadas del ratón; esto actualizará la etiqueta con las coordenadas cada vez que el usuario mueva (pero no arrastre) el 
ratón dentro del objeto 

PanelDibujo

. A continuación, sobrescriba el método 

mouseDragged

 de manera que establezca 

el segundo punto de 

figuraActual

con la posición actual del ratón y llame al método 

repaint

. Esto permitirá al usua-

rio ver la fi gura mientras arrastra el ratón. Además, actualice el objeto 

JLabel

 en 

mouseDragged

 con la posición actual 

del ratón.

Cree un constructor para 

PanelDibujo

 que tenga un solo parámetro 

JLabel

. En el constructor, inicialice 

etiquetaEstado

 con el valor que se pasa al parámetro. Además, inicialice el arreglo 

figuras

 con 100 entradas, 

cuen-

taFiguras

 con 

0

,

tipoFigura

 con el valor que represente a una línea, 

figuraActual

 con 

null

 y 

colorActual

 con 

Color.BLACK

. El constructor deberá entonces establecer el color de fondo del objeto 

PanelDibujo

 a 

Color.WHITE

. y 

registrar a 

MouseListener

 y 

MouseMotionListener

, de manera que el objeto 

JPanel

 maneje los eventos de ratón en 

forma apropiada.

A continuación, cree una subclase de 

JFrame

 llamada 

MarcoDibujo

, que proporcione una GUI que permita al 

usuario controlar varios aspectos del dibujo. Para el esquema del objeto 

MarcoDibujo

, recomendamos 

BorderLayout

,

con los componentes en la región 

NORTH

, el panel de dibujo principal en la región 

CENTER

 y una barra de estado en 

la región 

SOUTH

, como en la fi gura 11.49. En el panel superior, cree los componentes que se listan a continuación. El 

manejador de eventos de cada componente deberá llamar al método apropiado en la clase 

PanelDibujo

.

 

a) Un botón para deshacer la última fi gura que se haya dibujado.

 

b) Un botón para borrar todas las fi guras del dibujo.

 

c) Un cuadro combinado para seleccionar el color de los 13 colores predefi nidos.

 

d) Un cuadro combinado para seleccionar la fi gura a dibujar.

 

e) Una casilla de verifi cación que especifi que si una fi gura debe estar rellena o sin relleno.

Declare y cree los componentes de la interfaz en el constructor de 

MarcoDibujo

. Necesitará crear la barra de estado 

JLabel

 antes de crear el objeto 

PanelDibujo

, de manera que pueda pasar el objeto 

JLabel

 como argumento para el 

constructor de 

PanelDibujo

. Por último, cree una clase de prueba para inicializar y mostrar el objeto 

Marco-Dibujo

para ejecutar la aplicación.

Figura 11.49

  |  Interfaz para dibujar fi guras.

11_MAQ_CAP_11.indd538

4/19/081:26:30AM