Java - Cuelgue/Sobrecarga en JSwing

   
Vista:

Cuelgue/Sobrecarga en JSwing

Publicado por migui (3 intervenciones) el 25/02/2008 12:47:21
Hola,

Tengo un problema con una aplicacion java que he creado y la verdad es que no se por donde empezar a mirar.

Mi programa simula una fabrica quimica con sus diferentes lineas de produccion. En un momento en particular, el programa esta procesando diferentes productos en paralelo (Multi-thread). Hasta aqui no habia problemas, el modo "consola" que me habia creado (todo System.out.println(<mensaje>)) me informaba que el programa funcionaba sin problemas.

Cuando he creado una interfaz con JSwing que me va informando de manera grafica de todo el proceso, me da problemas, se bloquea completamente.
He supuesto que era un problema de sobrecarga, ya que si al programa le pongo pocos productos para que los procesara, no pasaba nada y se visulalizaba muy bien, pero si pongo mas de 3 por ejemplo, la pantalla se queda en blanco y es imposible redimensionarla o ver que sucede, aunque el modo "consola" sigue funcionando correctamente.

He supuesto que el problema es de JSwing, ya que el programa funciona "por debajo" sin esta interfaz, pero la verdad es que no se por donde empezar a mirar como solucionarlo. Problema de falta de recursos no puede ser porque estoy trabajando con un servidor.

Si alguien me puede orientar estare muy agradecido.

Gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Cuelgue/Sobrecarga en JSwing

Publicado por Tom (911 intervenciones) el 25/02/2008 17:09:31
¿ Has leído en la doc. de Swing que _no_ es thread safe ? Quizás vayan por ahí los tiros.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cuelgue/Sobrecarga en JSwing

Publicado por Yamil Bracho (2072 intervenciones) el 25/02/2008 23:41:49
Cierto.
Swing requiere que sus "controles" sean actualizados desde la [tarea principal[. Es decir que si corres un codigo en, por ejemplo, el ActionListener de un boton, este quedara bloqueado hasta que termine.
Echale una mirada al SwingWorker en el java tutorial en www.java.sun.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar