Foros del Web » Programación para mayores de 30 ;) » Java »

Problema al Mostrar imagenes en un JDialog con un intervalo de tiempo

Estas en el tema de Problema al Mostrar imagenes en un JDialog con un intervalo de tiempo en el foro de Java en Foros del Web. Yo tengo varias labels. Lo que necesito es ir cargando una imagen en cada label cada segundo. El tiempo de espera ya lo tengo solucionado. ...
  #1 (permalink)  
Antiguo 24/09/2007, 14:42
 
Fecha de Ingreso: octubre-2005
Mensajes: 45
Antigüedad: 18 años, 6 meses
Puntos: 0
Problema al Mostrar imagenes en un JDialog con un intervalo de tiempo

Yo tengo varias labels. Lo que necesito es ir cargando una imagen en cada label cada segundo. El tiempo de espera ya lo tengo solucionado. El problema que tengo es que no pinta cada imagen cada segundo como yo queiro. Lo que hace es pintarme todas las imàgenes al final de todos los intervalos de tiempo. He probado de todo y nada parece funcionar. ahì les dejo el còdigo.

ImageManager.setButtonImage(dialog.front1,cardImag ePath1,cardImagePath1);//Pone una imagen en fron1 que es un JLabel
Thread.currentThread().sleep(500);

dialog.requestFocus();
JDialog name= new JDialog(new Frame(),true);
name.setVisible(true);
name.setVisible(false);

ImageManager.setButtonImage(dialog.card2,cardImage Path2,cardImagePath2);//Pone una imagen en card2 que es un JLabel
Thread.currentThread().sleep(500);

name.setVisible(true);
name.setVisible(false);

ImageManager.setButtonImage(dialog.card3,cardImage Path3,cardImagePath3);//Pone una imagen en card3 que es un JLabel
Thread.currentThread().sleep(500);

name.setVisible(true);
name.setVisible(false);

ImageManager.setButtonImage(dialog.card4,cardImage Path4,cardImagePath4);//Pone una imagen en card4 que es un JLabel
Thread.currentThread().sleep(500);
  #2 (permalink)  
Antiguo 24/09/2007, 23:00
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Re: Problema al Mostrar imagenes en un JDialog con un intervalo de tiempo

Hola:

Hay un hilo de java que se encarga de repintar las ventanas. Ese hilo es el mimo en el que se ejecuta el código asociado a los eventos de ventanas, como pulsaciones de teclado, clicks de ratón, etc.

En tu caso, aunque no lo dices, seguramente ese código se ejecuta como consecuencia de la pulsación de un botón o algún otro evento. Ese código se ejecuta, por tanto, en el hilo de repintado de ventanas. Mientras tu código se ejecuta, las ventanas no se repintan.

Por ello, cambias la imagen y duermes varias veces, pero la ventana no se repinta. Lo hace sólo al final, todo de golpe, cuando terminas tu código.

Para evitar esto, debes lanzar un nuevo hilo lo antes posible. Puede ser algo como esto

Thread hilo = new Thread()
{
public void run()
{
// Aquí todo tu codigo de arriba
}
};
hilo.start();

Aquí puedes ver más detalles sobre el hilo de AWT.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:34.