Foros del Web » Programación para mayores de 30 ;) » Java »

Continuación repetida de un Applet

Estas en el tema de Continuación repetida de un Applet en el foro de Java en Foros del Web. Hola a todos, he logrado modificar un applet que aparece en el libro COMO PROGRAMAR EN JAVA 7ma. ed. de Dietel & Dietel. (págs. 567-569). ...
  #1 (permalink)  
Antiguo 24/07/2010, 06:59
 
Fecha de Ingreso: noviembre-2009
Mensajes: 23
Antigüedad: 15 años
Puntos: 0
Continuación repetida de un Applet

Hola a todos, he logrado modificar un applet que aparece en el libro COMO PROGRAMAR EN JAVA 7ma. ed. de Dietel & Dietel. (págs. 567-569). La aplicación (ver código anexo), consiste en hacer que una estrella comience a rotar en sentido a las manecillas del reloj.

Yo he colocado un par de botones para que una vez finalizada la aplicación, el usuario vuelva a ejecutar la misma o no si así lo desea. El problema consiste es que una vez finalizada la aplicación, los que identifican "si" y "no", en lugar de aparecer en la parte inferior, éstos me aparecen en la parte superior. ¿Me podrían ayudar a corregir dicha aplicación?

La aplicación es ejecutada en Netbeans 6.8.

// Paquetes Java

import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import java.awt.geom.*;

public class EstrellaRotando extends JFrame {
private JButton Si, No;
private JLabel etiqueta, etiqueta02;

public EstrellaRotando() {
super("Dibujo de un conjunto de estrellas.");
getContentPane().setBackground(Color.WHITE);
setSize(400, 400);
setVisible(true);
} // cierre del constructor EstrellaRotando()

public void paint(Graphics g) {
int k = 1;
super.paint(g);
int puntosX[] = {55, 67, 109, 73, 83, 55, 27, 37, 1, 43};
int puntosY[] = {0, 36, 36, 54, 96, 72, 96, 54, 36, 36};
Graphics2D g2d = (Graphics2D) g;
GeneralPath estrella = new GeneralPath(); // crea objeto GeneralPath.

// Establece coordenada inicial de la ruta general
estrella.moveTo(puntosX[0], puntosY[0]);

// Dibuja estrella
for(int n = 1; n < puntosX.length; n++)
estrella.lineTo(puntosX[n], puntosY[n]);
estrella.closePath(); // procede a cerrar la figura
g2d.translate(200, 200); // traslada el origen a (200, 200).

// Gira alrededor del origen y dibuja estrella en colores arbitrarios.
while(k <= 20) {
pausa();
g2d.rotate(Math.PI/10.0); // procede a gira el sistema de coordenadas
g2d.setColor( new Color((int)(Math.random() * 256),
(int)(Math.random() * 256), (int)(Math.random() * 256)));
g2d.fill(estrella); // dibuja estrella rellena.
k++;
} // cierre de while
continuacion();
} // cierre del método paint().

public static void main(String args[]) {
// Objetivo del ejemplo.
JOptionPane.showMessageDialog(null, "El programa muestra el " +
"uso de la clase \"JButton\" para continuar con la ejecución \n" +
"de una aplicación en forma repetitiva.\n", "Objetivo",
JOptionPane.INFORMATION_MESSAGE);
new EstrellaRotando();
} // cierre del métod main.

void continuacion() {
Container contenedor = getContentPane();
contenedor.setLayout(new FlowLayout());

// creación de botones
etiqueta = new JLabel(" ¿Deseas seguir trabajando?");
contenedor.add(etiqueta);
etiqueta02 = new JLabel(" ");
contenedor.add(etiqueta02);
Si = new JButton("Sí");
contenedor.add("South", Si);
No = new JButton("No");
contenedor.add("South", No);

/* Crea una instancia de la clase interna controlboton a usar para el manejo
* de eventos de botones. */
ControlBoton control = new ControlBoton();
Si.addActionListener(control);
No.addActionListener(control);
return;
}

static void pausa() {
try {
Thread.sleep(100,10000); // Pausa en milisegundos + nanosegundos.
}
catch(InterruptedException exc) {}
return;
} // cierre del método pausa.

private class ControlBoton implements ActionListener {
public void actionPerformed(ActionEvent evento) {
if(evento.getSource() == Si) {
evento.getActionCommand();
new EstrellaRotando();
}
if(evento.getSource() == No) {
evento.getActionCommand();
salida();
System.exit(1);
}
} // cierre de actionPerformed
} // cierre del método ControlBoton.

void salida() {
JOptionPane.showMessageDialog(null, "Ha sido un placer haber " +
"trabajado con usted. Hasta luego...", "Salida",
JOptionPane.INFORMATION_MESSAGE);
return;
}
} // cierre de la clase EstrellaRotando.
  #2 (permalink)  
Antiguo 28/07/2010, 03:30
Avatar de elAntonie  
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 9 meses
Puntos: 10
Respuesta: Continuación repetida de un Applet

Wenas

Segun la api, el metodo add(String, Component) de Container, esta obsoletiiiiiiiiiiiiiiiisimo.

Saludos.
__________________
--
NO. Tu problema no es urgente.

CCFVLS

Etiquetas: applet, repetida
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:03.