Título: Actualizar componentes? Repintar componenteS?? Publicado por: ChicoTolerante en 27 Febrero 2013, 02:10 am Hola!
Estoy INTENTANDO hacer un chat. El problema lo tengo para actualizar los mensajes enviados y el texto que debe aparecer en el JTextArea. Entonces, tengo lo siguiente, esencialmente: Código
Fichero 2: clase ServidorDelChat Código
He imaginado que la clase InterfazDelChat no se vuelve a cargar hasta que acaba con el bucle, que termina el objeto, y así vuelve a cargar los demás objetos. Entonces... mi pregunta sería: - ¿Cómo puedo cargar el JTextArea de la clase InterfazDelChat desde la otra clase ServidorSocket? ¿O cómo puedo cargar de nuevo un objeto, o actualizarlo, estando este en una, y queriendo cargarlo desde otra? He estado buscando y probando diversas cosas, pero nada surgio efecto... Gracias por todo!! Título: Re: Actualizar componentes? Repintar componenteS?? Publicado por: Chuidiang en 27 Febrero 2013, 08:31 am Hola:
Tiene pinta de que es problema de que estás manteniendo ocupado el hilo de repintado de ventanas (Event Dispatch Thread EDT). Cuando pulsas un botón, java ejecuta el actionListener en ese hilo que además es el hilo encargado de pintar las ventanas y su contenido. Si mantienes ese hilo ocupado (un while infinito, leyendo de un socket, etc) NADA se repintará en las ventanas hasta que se termine tu código. Entonces se pintará todo de golpe (lo que dices que lo pinta tres veces, pero tarde). La solución suele ser en el actionPerformed(), lanzar un hilo que haga todo lo que tengas que hacer, liberando así rápidamente el EDT. Tienes más detalles aquí http://chuwiki.chuidiang.org/index.php?title=El_EDT_%28Event_Dispatch_Thread%29_de_Java Se bueno. Título: Re: Actualizar componentes? Repintar componenteS?? Publicado por: ChicoTolerante en 27 Febrero 2013, 10:54 am Ohhh Chuidiang!! Gran honor para mi!! Tus tutoriales me han sacado de embrollos importantes + de una!!! Es lo que dices seguro, porque si eso es así es normal que no se me esté repintando. Definitivamente, lo acabo de probar y YEAHHHH funciona debidamente! Gracias por la explicación, ahora entiendo qué estaba pasando.
Un saludo cordial, te dejo ahí una vibra en modo "gracias"!! http://www.youtube.com/watch?v=JkaJP1m_s4Y |