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