En la fi gura 8.22, declaramos la clase 

PanelDibujo

, que generará objetos aleatorios de la clase 

MiLinea

. La 

línea 12 declara un arreglo 

MiLinea

 para almacenar las líneas a dibujar. Dentro del constructor (líneas 15 a 37), 

la línea 17 establece el color de fondo a 

Color.WHITE

. La línea 19 crea el arreglo con una longitud aleatoria entre 

5 y 9. El ciclo en las líneas 22 a 36 crea un nuevo objeto 

MiLinea

 para cada elemento en el arreglo. Las líneas 25 

a 28 generan coordenadas aleatorias para los puntos fi nales de cada línea, y las líneas 31 y 32 generan un color 
aleatorio para la línea. La línea 35 crea un nuevo objeto 

MiLinea

 con los valores generados al azar, y lo almacena 

en el arreglo.

 11  

private int

 y2; 

// coordenada y del segundo punto final

 12  

private

 Color miColor; 

// el color de esta figura

 13
 14  

// constructor con valores de entrada

 15  

public

 MiLinea( 

int

 x1, 

int

 y1, 

int

 x2, 

int

 y2, Color color )

 16  

{

 17  

 

this

.x1 = x1; 

// establece la coordenada x del primer punto final

 18  

 

this

.y1 = y1;

 // establece la coordenada y del primer punto final

 19  

 

this

.x2 = x2; 

// establece la coordenada x del segundo punto final

 20  

 

this

.y2 = y2; 

// establece la coordenada y del segundo punto final

 21  

 

miColor = color; 

// establece el color

 22  

}

// fin del constructor de MiLinea 

 23
 24  

// Dibuja la línea en el color específico

 25  

public void

 dibujar( Graphics g )

 26  

{

 27  

 

g.setColor( miColor );

 28  

 

g.drawLine( x1, y1, x2, y2 );

 29  

}

// fin del método dibujar

 30 

}

// fin de la clase MiLinea 

Figura 8.21

  |  La clase 

MiLinea

 representa a una línea. (Parte 2 de 2).

 1 

// Fig. 8.22: PanelDibujo.java

 2 

// Programa que utiliza la clase MiLinea

 3 

// para dibujar líneas al azar.

 4 

import

 java.awt.Color;

 5 

import

 java.awt.Graphics;

 6 

import

 java.util.Random;

 7 

import

 javax.swing.JPanel;

 8
 9 

public class

 PanelDibujo 

extends

 JPanel

 10 

{

 11  

private

 Random numerosAleatorios = new Random();

 12  

private

 MiLinea lineas[]; 

// arreglo de lineas

 13
 14  

// constructor, crea un panel con figuras al azar

 15  

public

 PanelDibujo()

 16  

{

 17  

 

setBackground(

Color.WHITE

 );

 18
 19  

 

lineas = 

new

 MiLinea[ 

5

 + numerosAleatorios.nextInt( 

5

 ) ];

 20
 21  

 

// crea lineas

 22  

 

for

 ( 

int

 cuenta = 

0

; cuenta < lineas.length; cuenta++ )

 23  

 

{

 

24    

// genera coordenadas aleatorias

Figura 8.22

  |  Creación de objetos 

MiLinea

 al azar. (Parte 1 de 2).

362

Capítulo 8 Clases y objetos: un análisis más detallado

08_MAQ_CAP_08.indd362

4/19/081:24:00AM