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