Java - parar la ejecucion de un applet

 
Vista:

parar la ejecucion de un applet

Publicado por Cindy (1 intervención) el 30/10/2006 14:21:07
Estoy haciendo un programa que dado n numero de lineas, las dibuje con color y posicion aleatoria, debe empezar cuando oprima el boton asignado "Empezar" y debe parar cuando oprima el botón asignado "Finalizar", la verdad no sé como hacer para que en la función action, al oprimir "Finalizar", pare.
Este es mi código para que se sientan más familiarizados:
/**
* Clase que dibuja n lineas en posición y color aleatorio
* @author Esmeralda
* @date Octubre 29 de 2006
* @version 1.0
*/
package mundo;

import java.applet.Applet;
import java.awt.*;

public class Lineas extends Applet
{
int numeroLineas; //Cantidad de lineas a dibujar
Button b1,b2; // Botones para empezar y finalizar
TextField in; // Lectura de el numero de lineas

public void init()
{
numeroLineas=0;
b1 = new Button("Empezar");
b2 = new Button("Finalizar");
in = new TextField(10);
add(new Label("Ingrese el numero de lineas"));
add(in);
add(b1);
add(b2);
}

public void paint(Graphics g)
{
for(int i=0; i<numeroLineas; i++)
{
g.setColor(new Color((int)(Math.random()*255),(int)(Math.random()*255),(int)(Math.random()*255)));
g.drawLine((int)(Math.random()*700)+50,(int)(Math.random()*700)+50,(int)(Math.random()*700)+50,(int)(Math.random()*700)+50);
}
}

public boolean action(Event e, Object o)
{
// actualizacion del numero de lineas
if(e.target instanceof TextField)
{
numeroLineas = Integer.parseInt(in.getText());
}

//evaluacion de los botones
if(e.target instanceof Button)
{
// invocacion de paint, si el botón es "Empezar"
if(e.target == b1)
{
repaint();
}
// Detención del applet, si el botón es "Finalizar"
else
{
//parar el applet
}
}
return true;
}

}
Gracias al que me pueda ayudar.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:parar la ejecucion de un applet

Publicado por chuidiang (950 intervenciones) el 30/10/2006 19:18:52
Hola:

Tienes que lanzar un hilo. En el actionPerformed() de empezar, haz un hilo de esta manera

Thread hilo = new Thread()
{
public boolean continuar=true;
public void run()
{
while (continuar)
{
pequeño retardo (con Thread.sleep() por ejemplo)
repaint();
}
}
}
hilo.start();

Cuando quieras parar, simplemente haz

hilo.continuar=false;

Se buena.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar