3 millones en foros del web

Registrarte Políticas Wiki 120segs Ayuda Iniciar sesion

Retroceder   Foros del Web > Programación > Java
Respuesta
 
Herramientas Desplegado
Antiguo 29-may-2007, 17:32   #1 (permalink)
 
25 Mensajes
CtrlAltSupr está desconectado
Pregunta Duda sobre sincronización

Hola,

Tengo un problema con un programa en Java y me gustaria saber vuestra opinión.

Os explico:

Tengo una interfaz grafica (JFrame) con un botón que cuando se pulsa ejecuta un código que realiza un conjunto de tareas. Lo que quiero es que, a medida que se ejecute dicho código, se visualize información sobre su evolución en la interfaz gráfica.

Cuando aún no tenia interfaz, mostraba los mensajes a través de la salida estándard (con un System.out.println) y el funcionamiento era el esperado. Pero cuando he intentado meterle la interfaz, los mensajes no salen hasta que se ha ejecutado todo el código.

Mi pregunta es: como deberia hacerlo para que los mensajes se visualizen a medida que se producen y no todos al final?

threads? syncronized?... estoy un poco perdida, si alguien me puede dar alguna idea o pasarme algun link se lo agradeceré mucho.

Gracias
  Responder Citando
Antiguo 29-may-2007, 19:46   #2 (permalink)
B**
B** (Reg: enero-2006)
 
952 Mensajes
Ubicación: Monterrey,Mexico
B** está desconectado
Re: Duda sobre sincronización

Pues yo pienso que si podrias usar threads.... ya que eso hace que se ejecuten tareas, sin necesidad de esperar a otras, es decir son independientes.
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  Responder Citando
Antiguo 29-may-2007, 23:39   #3 (permalink)
chuidiang (Reg: octubre-2004)
 
1.120 Mensajes
chuidiang está desconectado
Re: Duda sobre sincronización

Hola:

Cuando se ejecuta algo como consecuencia de la pulsación de un botón o evento de teclado, ese algo se ejecuta en el mismo hilo que se encarga de repintar las ventanas. Por eso, todo lo que hagas ahí no se verá hasta que termines. Si en ese código vas haciendo cosas sobre las ventanas, no verás los resultados hasta el final, todo de golpe, que es lo que te está pasando.

La solución es en el código del evento lanzar un hilo nuevo para liberar el hilo de pintado de ventanas lo antes posible. En ese hilo nuevo ya sí puedes ir mostrando cosas sobre las ventanas y las verás inmediatamente.

Echa un ojo a estos enlaces para más información
El hilo de awt.
Animación en java.

Se bueno.
  Responder Citando
Antiguo 30-may-2007, 02:48   #4 (permalink)
 
25 Mensajes
CtrlAltSupr está desconectado
Pregunta Re: Duda sobre sincronización

He mirado estos ejemplos y creo que me pueden ayudar.

Aunque antes de ponerme a añadir threads a mi código, me gustaria saber si realmente me servirá para lo que necesito hacer.

La diferencia que he visto con el ejemplo es que en mi código, el "repintar pantalla" se encuentra dentro del mismo thread que ejecuta la tarea que tarda, ya que es allí donde se genera la información que se debe mostrar.

Sabiendo que algunas de las tareas son dependientes entre sí, puedo seguir la misma estratégia de threads?

Gracias a todos

PD. Necesito ayuda urgente para terminar mi proyecto final de carrera
  Responder Citando
Antiguo 30-may-2007, 07:36   #5 (permalink)
chuidiang (Reg: octubre-2004)
 
1.120 Mensajes
chuidiang está desconectado
Re: Duda sobre sincronización

Hola:

si llamas a repaint(), eso lanza un evento de necesidad de repintado que se ejecutará en un hilo separado. Si llamas a repaint() desde tu nuevo hilo, no deberías tener problemas de repintado.

El método paint() y otros NO lanzan el evento, sino que pintan directamente. Si estás llamando a esos métodos, puede que tengas algún problemilla.

Se bueno.
  Responder Citando
Respuesta
No hay votos aú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.

Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code está Activado
Caritas están Activado
[IMG] está Desactivado
Código HTML está Desactivado
Trackbacks está Desactivado
Pingbacks está Desactivado
Refbacks está Desactivado



La zona horaria es GMT -6. Ahora son las 12:39.
Políticas de Uso de Foros del Web


Message Board Statistics

SEO by vBSEO 3.3.2

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104