Pausar una linea en metodo

Iniciado por AsTeroine, 24 Junio 2009, 02:28 AM

0 Miembros y 1 Visitante están viendo este tema.

AsTeroine

Disculpen pero al que manejra el foro borre por favor el otro post que lo repeti, perdon :D

Hola..ando haciendo como una especie de depurador de un proyecto que comprime datos linea por linea...por ello estoy poniendo en un textArea lo que voy recopilando y deseo ponerle un boton para que él sea el que diga para continuar la siguinte linea de codigo

Idea general

Class Nombre

metodo1
             X-->            estas son lineas de codigo normales
             Y-->
             Z-->
             paro aqui para ver los resultados escrito en un textfield hasta que se de nuevo click en el boton para reanudar...
metodo2
             X-->           estas son lineas de codigo normales
             Y-->
             paro aqui para ver los resultados escrito en un textfield hasta que se de nuevo click en el boton para reanudar...
             Z-->
metodo3
             X-->            estas son lineas de codigo normales
             paro aqui para ver los resultados escrito en un textfield hasta que se de nuevo click en el boton para reanudar...
             Y-->
             Z-->

es decir tengo varios metodos pero quiero que en determinada linea parar la ejecucion codigo y que el boton sea el que lo reanude...
ya prove con hilos pero no me ha dado efecto ya lo intente como 90 mil veces...
tambien lo hice con wait y notify y nada  :(
         
Alguien tiene un ejempllo asi directo de como hacer esto o tiene alguna pista??? gracias

Chuidiang

Hola:

Hay muchas formas de hacerlo y las de hilos deberían funcionar.

Lo más simple es que donde quieras continuar muestres un JOptionPane. El JOptionPane muestra una ventana dialogo y detiene la ejecución hasta que la cierres

linea1;
linea2;
JOptionPanel.showMessageDialog("Pulse para continuar",....);
linea3;
linea4;


Otra opción sin meterse en hilos, pero que te puede complicar algo el asunto si hay muchas variables locales que reutilizan las líneas, es hacer varios métodos, uno por conjunto de líneas. El botón debe incrementar un contador cada vez que se pulse y en función del valor del contador llamar al metodo1(), al metodo2(), etc.

Finalmente, metiéndote en hilos, debería funcionar. Elige una variable cualquiera que sea accesible tanto desde el botón como desde las líneas de código. En el código debes poner

synchronized (objeto) {
linea1;
linea2;
objeto.wait();
linea3;
linea4;
objeto.wait();
...
}


La pulsación del botón símplemente debe hacer

synchronized (objeto) {
objeto.notify();
}


Esto, hasta cierto punto puede congelarte la interface de usuario si linea1, linea2, ... tardan mucho en ejecutarse.

Se bueno.