Java- problema con sleep Hola, estoy haciendo un pequeño interprete de un lenguaje con 3 ó 4 instrucciones. La interfaz principalmente de dos TextArea, en la primera (Texto)esta el codigo a interpretar y en la segunda (Errores)voy sacando mensajitos.
Una de las funciones que implementa el programa es "ejecutar paso a paso", como ando bastante verde en el asunto lo mejor que he encontrado es hacer un sleep en cada vuelta del programa mientras voy monitorizando en el TextArea de los mensajes el estado de las variables y seleccionando en el codigo la instruccion que se está ejecutando...
Mi problema es el siguiente, en los textArea no se selecciona ni se escribe nada hasta que el programa no termina del todo, entonces aparece la informacion de cada iteracion... es muy extraño porque si en vez de escribir en el textArea escribo en consola si que se escribe una linea cada segundo. ¿Alguna idea?
Este es el procedimiento al que se llama en cada iteracion si la ejecucion es paso a paso:
private void pasoApaso() throws InterruptedException {
Point pto=linea(instruccion);
ed.Texto.select(pto.x, pto.y); //Para hacer un highlight en la linea
//q estoy ejecutando;
monitorizar();
sleep(1000);
ed.Texto.select(0, 0);
}
private void monitorizar(){ // Este procedimiento es el que escribe en el textArea el estado de las variables
String s="";
for (int j=0;j<variables.length;j++){
s=s+"x"+(j+1)+"="+variables[j]+", ";
}
s=s.substring(0,s.length()-2);//quitar la coma final
ed.Errores.insert(("\n"+s),(ed.Errores.getText()). length());
System.out.println(s);//<<---------Esto SI que sale cada segundo :S:S:S
} |