El usuario debe introducir también un conjunto de coordenadas además del radio. Después dibuje el círculo y muestre
su diámetro, circunferencia y área, mediante el uso de un objeto
Ellipse2D.Double
para representar el círculo y el
método
draw
de la clase
Graphics2D
para mostrarlo en pantalla.
12.18
(Protector de pantalla) Escriba una aplicación que simule un protector de pantalla. La aplicación deberá dibujar
líneas al azar, utilizando el método
drawLine
de la clase
Graphics
. Después de dibujar 100 líneas, la aplicación deberá
borrarse a sí misma y empezar a dibujar líneas nuevamente. Para permitir al programa dibujar en forma continua, colo-
que una llamada a
repaint
como la última línea en el método
paintComponent
. ¿Observó algún problema con esto en
su sistema?
12.19
(Protector de pantalla mediante el uso de
Timer
) El paquete
javax.swing
contiene una clase llamada
Timer
, la
cual es capaz de llamar al método
actionPerformed
de la interfaz
ActionListener
durante un intervalo de tiempo
fi jo (especifi cado en milisegundos). Modifi que su solución al ejercicio 12.18 para eliminar la llamada a
repaint
desde
el método
paintComponent
. Declare su clase de manera que implemente a
ActionListener
. (El método
actionPer-
formed
deberá simplemente llamar a
repaint
). Declare una variable de instancia de tipo
Timer
, llamada
temporiza-
dor
, en su clase. En el constructor para su clase, escriba las siguientes instrucciones:
temporizador =
new
Timer(
1000
,
this
);
temporizador.start();
Esto crea una instancia de la clase
Timer
que llamará al método
actionPerformed
del objeto
this
cada 1000 milise-
gundos (es decir, cada segundo).
12.20
(Protector de pantalla para un número aleatorio de líneas) Modifi que su solución al ejercicio 12.19 para permitir
al usuario introducir el número de líneas aleatorias que deben dibujarse antes de que la aplicación se borre a sí misma
y empiece a dibujar líneas otra vez. Use un objeto
JTextField
para obtener el valor. El usuario deberá ser capaz de
escribir un nuevo número en el objeto
JTextField
en cualquier momento durante la ejecución del programa. Use una
clase interna para realizar el manejo de eventos para el objeto
JTextField
.
12.21
(Protector de pantalla con fi guras) Modifi que su solución al ejercicio 12.19, de tal forma que utilice la genera-
ción de números aleatorios para seleccionar diferentes fi guras a mostrar. Use métodos de la clase
Graphics
.
12.22
(Protector de pantalla mediante el uso de la API Java 2D) Modifi que su solución al ejercicio 12.21 para utilizar
clases y herramientas de dibujo de la API Java 2D. Para las fi guras como rectángulos y elipses, dibújelas con degradados
generados al azar. Use la clase
GradientPaint
para generar el degradado.
12.23
(Gráfi cos de tortuga) Modifi que su solución al ejercicio 7.21 (Gráfi cos de tortuga) para agregar una interfaz
gráfi ca de usuario, mediante el uso de objetos
JTextField
y
JButton
. Dibuje líneas en vez de asteriscos (*). Cuando el
programa de gráfi cos de tortuga especifi que un movimiento, traduzca el número de posiciones en un número de píxeles
en la pantalla, multiplicando el número de posiciones por 10 (o cualquier valor que usted elija). Implemente el dibujo
con características de la API Java 2D.
12.24
(Paseo del caballo) Produzca una versión gráfi ca del problema del Paseo del caballo (ejercicios 7.22, 7.23 y
7.26). A medida que se realice cada movimiento, la celda apropiada del tablero de ajedrez deberá actualizarse con el
número de movimiento apropiado. Si el resultado del programa es un
paseo completo o un paseo cerrado, el programa
deberá mostrar un mensaje apropiado. Si lo desea, puede utilizar la clase
Timer
(vea el ejercicio 12.19) para que le ayude
con la animación del Paseo del caballo.
12.25
(
La tortuga y la liebre) Produzca una versión gráfi ca de la simulación La tortuga y la liebre (ejercicio 7.28).
Simule la montaña dibujando un arco que se extienda desde la esquina inferior izquierda de la ventana, hasta la esqui-
na superior derecha. La tortuga y la liebre deberán correr hacia arriba de la montaña. Implemente la salida gráfi ca de
manera que la tortuga y la liebre se impriman en el arco, en cada movimiento. [
Nota: extienda la longitud de la carrera
de 70 a 300, para que cuente con un área de gráfi cos más grande].
12.26
(Dibujo de espirales) Escriba un programa que utilice el método
drawPolyline
de
Graphics
para dibujar una
espiral similar a la de la fi gura 12.33.
12.27
(Gráfi co de pastel) Escriba un programa que reciba como entrada cuatro números y que los grafi que en forma
de gráfi co de pastel. Use la clase
Arc2D.Double
y el método
fill
de la clase
Graphics2D
para realizar el dibujo. Dibuje
cada pieza del pastel en un color distinto.
12.28
(Selección de fi guras) Escriba una aplicación que permita al usuario seleccionar una fi gura de un objeto
JCombo-
Box
y que la dibuje 20 veces, con ubicaciones y medidas aleatorias en el método
paintComponent
. El primer elemento
en el objeto
JComboBox
debe ser la fi gura predeterminada a mostrar la primera vez que se hace una llamada a
paint-
Component
.
Ejercicios
575
12_MAQ_CAP_12_DEITEL.indd575
4/19/081:27:08AM