wait(long)

?car
24 de Noviembre del 2004
Me gustaría saber como puedo hacer que mi programa se pare durante unos segundos mientras se ejecuta otro al que llamo dentro del mismo.
He probado con el metodo wait de la clase Object, pero me da un error de ejecución porque el proceso no es owner.
Tambien lo ha hecho con un bucle, pero no queda muy elegante.
¿Alguien sabe como se hace?

Muchas gracias

Manuel
24 de Noviembre del 2004
¿Nadie lo sabe?

Es una pregunta interesante.

chuidiang
24 de Noviembre del 2004
Para parar un programa un programa puedes hacer dos cosas:

Lo normal es esto

try
{
Thread.currentThread.sleep (1000); // Tiempo en mili segundos
}
catch (Exception e)
{
}

Esto sólo para el hilo en curso. Si usas ventanas y paras el hilo de refresco de las ventanas, durante este retardo la ventana no respondara a los clicks de ratón y no se repintará si la mueves. Si paras otro hilo que no sea el de las ventanas, entonces sí se refrescaran las ventanas y se ejecutarán los clicks de los botones.

Otra posibilidad es usar la clase Robot que está en java.awt. Esta clase está pensada para simular desde código eventos de ratón y teclado, con propósito de pruebas automáticas, pero tiene un método delay() que puedes usar.

Se bueno

chuidiang
24 de Noviembre del 2004
Releyendo la pregunta se me ocurre otra cosa que quizas sea de utilidad.

Si ejecutas una aplicacion aparte, supongo que usas

Runtime.getRuntime().exec ("aplicacion.exe");

Puedes esperar que termine si coges el Process que devuelve esta llamada y esperas por el

Process p = Runtime.getRuntime().exec ("aplicacion.exe");

p.waitFor ();

Se bueno.