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