del rectángulo delimitador. El método
drawOval
(líneas 31 y 32) requiere los mismos cuatro argumentos que el
método
drawRect
. Los argumentos especifi can la posición y el tamaño del rectángulo delimitador para el óvalo.
Los valores que se pasan a
drawOval
en este ejemplo son exactamente los mismos valores que se pasan a
drawRect
en las líneas 27 y 28. Como la anchura y la altura del rectángulo delimitador son idénticas en este ejemplo, las
líneas 27 y 28 dibujan un círculo. Puede modifi car el programa para dibujar rectángulos y óvalos, para ver cómo
se relacionan
drawOval
y
drawRect
.
La fi gura 5.27 es responsable de manejar la entrada del usuario y crear una ventana para mostrar el dibujo
apropiado, con base en la respuesta del usuario. La línea 3 importa a
JFrame
para manejar la pantalla, y la línea 4
importa a
JOptionPane
para manejar la entrada.
Las líneas 11 a 13 muestran un cuadro de diálogo al usuario y almacenan la respuesta de éste en la variable
entrada
. La línea 15 utiliza el método
parseInt
de
Integer
para convertir el objeto
String
introducido por
el usuario en un
int
, y almacena el resultado en la variable
opcion
. En la línea 18 se crea una instancia de la
clase
Figuras
, y se pasa la opción del usuario al constructor. Las líneas 20 a 25 realizan las operaciones estándar
para crear y establecer una ventana: crear un marco, confi gurarlo para que la aplicación termine cuando se cierre,
agregar el dibujo al marco, establecer su tamaño y hacerlo visible.
Figura 5.26
| Cómo dibujar una cascada de fi guras, con base en la opción elegida por el usuario.
1
// Fig. 5.26: Figuras.java
2
// Demuestra cómo dibujar distintas figuras.
3
import
java.awt.Graphics;
4
import
javax.swing.JPanel;
5
6
public class
Figuras
extends
JPanel
7
{
8
private int
opcion;
// opción del usuario acerca de cuál figura dibujar
9
10
// el constructor establece la opción del usuario
11
public
Figuras(
int
opcionUsuario )
12
{
13
opcion = opcionUsuario;
14
}
// fin del constructor de Figuras
15
16
// dibuja una cascada de figuras, empezando desde la esquina superior izquierda
17
public void
paintComponent( Graphics g )
18
{
19
super
.paintComponent( g );
20
21
for
(
int
i =
0
; i <
10
; i++ )
22
{
23
// elije la figura con base en la opción del usuario
24
switch
( opcion )
25
{
26
case
1
:
// dibuja rectángulos
27
g.drawRect(
10
+ i *
10
,
10
+ i *
10
,
28
50
+ i *
10
,
50
+ i *
10
);
29
break
;
30
case
2
:
// dibuja óvalos
31
g.drawOval(
10
+ i *
10
,
10
+ i *
10
,
32
50
+ i *
10
,
50
+ i * 10 );
33
break
;
34
}
// fin del switch
35
}
// fin del for
36
}
// fin del método paintComponent
37
}
// fin de la clase Figuras
5.10 (Opcional) Ejemplo práctico de GUI y gráfi cos: dibujo de rectángulos y óvalos
195
05_MAQ_CAP_05.indd195
4/19/081:21:38AM