Programación General > Java
Reloj Dando Vueltas Mientras Se Ejecutan Datos
alemag:
Saludos compañeros, todavia no lo he logrado.
Quiero hacer un reloj de arena dando vueltas mientras se estan ejecutando unos datos, pero resulta que a veces el reloj se queda parado ( como si le diese mas prioridad a la ejecucion de los datos). Lo tengo en un hilo aparte, este codigo:
--- Código: Text --- Runnable tarea=new Runnable() { public void run() { p_est_datos.removeAll(); p_est_datos.add(new JLabel("Se estan generando los resultados finales ")); JLabel et_icono=new JLabel(); et_icono.setIcon(new ImageIcon(getClass().getResource("/imagenes/estesi.gif"))); p_est_datos.add(et_icono); p_est_datos.repaint(); p_est_datos.revalidate(); } }; Thread hilo=new Thread(tarea); hilo.start(); // y luego aqui llamaria a otra clase donde se realizan todos los datos.
Como podria hacer que el reloj no dependiese de los datos que se ejecutan, es decir, que sea independiente y se muestre dicho gif de seguido ???
Gracias.
JuanK:
--- Cita de: "alemag" --- Saludos compañeros, todavia no lo he logrado.
Quiero hacer un reloj de arena dando vueltas mientras se estan ejecutando unos datos, pero resulta que a veces el reloj se queda parado ( como si le diese mas prioridad a la ejecucion de los datos). Lo tengo en un hilo aparte, este codigo:
--- Código: Text --- Runnable tarea=new Runnable() { public void run() { p_est_datos.removeAll(); p_est_datos.add(new JLabel("Se estan generando los resultados finales ")); JLabel et_icono=new JLabel(); et_icono.setIcon(new ImageIcon(getClass().getResource("/imagenes/estesi.gif"))); p_est_datos.add(et_icono); p_est_datos.repaint(); p_est_datos.revalidate(); } }; Thread hilo=new Thread(tarea); hilo.start(); // y luego aqui llamaria a otra clase donde se realizan todos los datos.
Como podria hacer que el reloj no dependiese de los datos que se ejecutan, es decir, que sea independiente y se muestre dicho gif de seguido ???
Gracias.
--- Fin de la cita ---
cLARO ENTIENDO...
le punto es que estas bien encaminado usando hilos, pero estas mas encaminado usando el gif, en internet esta el programa que dibuja el reloj todo por si mismo, ese es el que debes usar.
jpaler:
el problema no es del hilo ni nada por el estilo...
...,el problema (segun entiendo yo), es q las interfaces swing, se paralizan
(es decir, no se repintan) cuando se esta llevando a cabo un proceso
de alta prioridad: un for, un while o algo por el estilo.
...,esto al parecer se debe a estructura y forma en q fueron creadas.
creo q hacer q un gif animado muestre su animacion mientras hay
ciclo recogiendo datos, es al complejo.
-----------------
si lo q quieres es informarle al usuario q hay un proceso q puede tardar y
q debe esperar... te sugiero q pruebes a cambiar el cursor del mouse
por un .png q diga espere o muestre un reloj o algo asi... esto si funciona.
Salu2 !!!
alemag:
Como podria hacer lo del .png ?? Me podrias orientar ???
Gracias.
jpaler:
listo... dejame y busco, creo q por hay tengo un ejemplo q una ves hice.
voy a ver si puedo adjuntarte por aki la imagen del cursor y el codigo
de como establecerlo.
listo !!!
Navegación
[#] Página Siguiente
Ir a la versión completa