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