Java - Crear hebra presentar ventana

 
Vista:

Crear hebra presentar ventana

Publicado por essjgaz (19 intervenciones) el 06/10/2004 14:05:23
Hola.Tengo un problemilla. Tengo una ventana donde tengo que introducir una password y mientras comprueba está, lanzó una ventana con un texto. Mi problema es que si esa ventana que lanzo es modal(true) el código se detiene, pero si modal(false) esta ventana no se muestra. Como puedo hacer para que se muestre mientras valido la password.
GRACIAS
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
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

RE:Crear hebra presentar ventana

Publicado por Yamil Bracho (2315 intervenciones) el 06/10/2004 17:33:53
Todas las actualizaciones a la GUI en Swing deben hacerse en la hebra principal. Asi que lo que debes hacer es crear una tarea que te muestre la ventana y la ejecutas usando SwingUtilities o EventQueue y el metodo invokeLater o invokeAndWait
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

RE:Crear hebra presentar ventana

Publicado por chuidiang (532 intervenciones) el 07/10/2004 08:22:08
En java hay un hilo que se encarga del pintado de pantalla y de ejecutar el código de los botones (ActionListener y demás).

Si introduces la password y pulsas "validar" o "intro" o lo que sea que hayas puesto, el código que muestra la ventana y comprueba la password está en el hilo de pintado de ventanas.

Al Mandar pintar el texto, en realidad no se pinta, sino que se avisa a la máquina virtual que lo pinte cuando pueda. Como el hilo de pintado está haciendo cosas (validar la password), la ventana no se pinta.

Lo que debes hacer es crear un nuevo hilo para validar la password, liberando el hilo de pintado lo antes posible. De esta forma la máquina virutal dispondrá de su hilo de pintado para pintar el texto mientras el hilo que has creado esta verificando la password.

Seria algo como esto

Runnable run = new Runnable {
public void run ()
{
// validar password
}
}

Thread hilo = new Thread(run);
hilo.start();

Se bueno.
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