Ver Mensaje Individual
  #2 (permalink)  
Antiguo 12/03/2016, 16:42
Avatar de chuidiang
chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Retrasar la ejecución de algo con Thread.sleep

Hola:

Java tiene un hilo propio encargado de tratar eventos de raton, teclado y pintado de ventana. Si ese código tuyo se ejecuta al pulsar un botón o pulsación de tecla, se está ejecutando en ese hilo y mientras se esté ejecutando ese código, java no pinta/repinta las ventanas.

Así que pones un icono (ese método en realidad no pinta el icono, sino que le dice al hilo de pintado de ventanas, que cuando pueda, lo pinte), esperas un segundo (bloqueando ese hilo de pintado de ventanas durante un segundo, durante el cual tampoco pintará nada), luego poner el segundo icono (nuevamente aviso al hilo de pintado para que pinte otro icono cuando pueda) y sales del código.

En el momento de salir de tu codigo, el hilo de pintado queda libre y pintará los dos iconos seguidos, porque tiene los dos avisos.

Si no quieres que esto suceda, debes liberar el hilo lo antes posible lanzando todo en un hilo separado.

Código Java:
Ver original
  1. Thread hilo =  new Thread () {
  2.     public void run() {
  3.            pintas icono 1
  4.            esperas 1 segundo
  5.            pintas icono 2
  6.     }
  7. }
  8. hilo.start();

Se bueno.
__________________
Apuntes Java
Wiki de Programación