Figura 12.34

  |  Dibujo con Java 2D.

 

a) Una casilla de verifi cación para especifi car si se va a pintar usando un degradado.

 b) 

Dos 

objetos 

JButton

, cada uno de los cuales debe mostrar un cuadro de diálogo 

JColorChooser

, para per-

mitir al usuario elegir los colores primero y segundo en el degradado. (Éstos sustituirán al objeto 

JComboBox

que se utiliza para extender el color en el ejercicio 11.18).

 

c) Un campo de texto para introducir la anchura del objeto 

Stroke

.

 

d) Un campo de texto para introducir la longitud de guión del objeto 

Stroke

.

 

e) Una casilla de verifi cación para seleccionar si se va a dibujar una línea punteada o sólida.

Si el usuario opta por dibujar con un degradado, establezca el objeto 

Paint

 en el 

PanelDibujo

 de forma que 

sea un degradado de los dos colores seleccionados por el usuario. La expresión

new

 GradientPaint( 

0

,

0

, color1, 

50

,

50

, color2, 

true

 ) )

crea un objeto 

GradientPath

 que avanza diagonalmente en círculos, desde la esquina superior izquierda hasta la 

esquina inferior derecha, cada 50 píxeles. Las variables 

color1

 y 

color2

 representan los colores elegidos por el 

usuario. Si éste no elije usar un degradado, entonces simplemente establezca el objeto 

Paint

 en el 

PanelDibujo

de manera que sea el primer 

Color

 elegido por el usuario.

Para los trazos, si el usuario elije una línea sólida, entonces cree el objeto 

Stroke

 con la expresión

new

 BasicStroke( anchura, 

BasicStroke.CAP_ROUND

,

BasicStroke.JOIN_ROUND

)

en donde la variable 

anchura

 es la anchura especifi cada por el usuario en el campo de texto de anchura de línea. 

Si el usuario selecciona una línea punteada, entonces cree el objeto 

Stroke

 con la expresión

new

 BasicStroke( anchura, 

BasicStroke.CAP_ROUND

,

BasicStroke.JOIN_ROUND

,

10

, guiones, 

0

 )

en donde 

anchura

 es de nuevo la anchura en el campo de anchura de texto, y 

guiones

 es un arreglo con un 

elemento, cuyo valor es la longitud especifi cada en el campo de longitud de guión. Los objetos 

Panel

 y 

Stroke

deben pasarse al constructor del objeto fi gura, cuando se cree la fi gura en el objeto 

PanelDibujo

.

Ejercicios

577

12_MAQ_CAP_12_DEITEL.indd577

4/19/081:27:09AM