Java menu

Hola, estoy haciendo una practica, voy a explicar la situación:
Tengo una clase creada mía, que cuando la llamas abre una ventana con una solución a un problema que le entras en forma de parámetros (la solución puede tardar en generarse, ya que es un programa hecho por backtraking), a través de eun menu llamo a ese método(que hace lo anteriormente dicho), el caso es que me interesa tener un botón stop, para que se pare la segunda ventana (la que se genera cuando se intenta solucionar el problema)
i volver al menu de forma normal, lo que busco es una interrupción para el procedimiento de backtaking i que pare cuando yo se lo diga...
Como lo puedo hacer ¿? ¿?
MUCHÍSIMAS GRACIAS DE ANTEMANO, perdón por la explicación tan enrevesada, pero no sabia como decirlo!

1 respuesta

Respuesta
1
Haber si he entendido.
Tu abres una nueva ventana y comienza el "proceso_largo".
Claro, entonces, ¿el hilo principal del programa se queda ejecutando "proceso_largo" y tu no puedes tocar nada no?
Si es esto, la solución es usar hilos. Para hacerlo, puedes crear una nueva clase que herede de Thread o implemente Runnable y en el método run, ejecutar proceso largo.
Si no has usuado nunca Threads, echa un vistazo a la documentación o a algún tutorial.
Si lo acabo de descubrir hago:
public class Executa extends JApplet implements Runnable {
public void run() {
Main = new Principal(P,dim,3,3);
if (Main.backtracking()){
System.out.println("Ha trobat solucio!!!");
Main.dibuxarsolucio();
}
else{
System.out.println("No te solución...");
}
}
}
I luego llamo al método así:
.
. Thread Backtraking = new Thread( new Executa());...
...
...
Backtraking.run();.....
Pero sigo igual! Donde fallo ¿? ¿? ¿?
Separa las clases, tanta herencia no es buena.
Crea un
public class Executa extends Thread{
public void run(){
Main.bactracking();
}
}
Y luego en el Applet, lanzas este método, pero no el
run, tienes que hacer ejecutar. Start(). Esto es importante.
Así, tu tienes tu proceso bactracking corriendo en otro hilo, y la aplicación en otro.
Lo único, puedes pasar el gui como parámetro en el constructor de Executa. Así, desde Executa, puedes notificar al Applet que se ha terminado, ejecutando un método por ejemplo.
La verdad, la programación con varios hilos es bastante complicadilla, así que te recomiendo que intentes tutoriales y ejercicios de ejemplos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas