Java - Cambiar de programa y volver a la aplicación

 
Vista:

Cambiar de programa y volver a la aplicación

Publicado por Slurm McKenzie (9 intervenciones) el 27/10/2003 14:21:13
Hola,

Tengo un problema: he creado un programa visual en Java, para ello he usado objetos Swing y AWT. Lanzo la aplicación, y ésta me viene a primer plano. Su función es la de presionar un botón y lanzar un proceso muy largo que va mostrando información de estado en una textArrea. Como es un proceso largo, mientras acaba paso a hacer otras cosas en mi PC (es windows). Sin embargo, si quiero volver a ver como va el programa, cuando lo trato de visualizar sólo puedo ver ciertos campos, concretamente los AWT y los que cambian, pero no puedo ver los campos que yo había metido algún valor, y tampoco puedo ver el fondo del frame, se me pone de fondo la pantalla que tuviera antes visualizada.

¿Como soluciono este problema? He probado a añadir algunos eventos al JFrame, como windowActivated o Focus, y que hagan un repaint del frame, pero no funciona.

¿Me podeis ayudar?

Gracias
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:Cambiar de programa y volver a la aplicación

Publicado por Manuel (8 intervenciones) el 27/10/2003 18:36:15
Deberías lanzar el proceso largo en un nuevo Thread.

aquí hay información y ejemplos, quizá te sirva:
http://java.sun.com/products/jfc/tsc/articles/threads/threads1.html
http://java.sun.com/products/jfc/tsc/articles/threads/threads2.html

Saludos.
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:Cambiar de programa y volver a la aplicación

Publicado por chuidiang (532 intervenciones) el 28/10/2003 09:28:49
Manuel tiene razón.

Cuando ejecutas un programa java con ventanas, tienes tres threads corriendo como minimo: el recolector de basura, el del main() y el de awt.

El thread de awt es el que se encarga de eventos de ratón y repintados. El código que ejecutas al pulsar un botón, como viene de un evento de ratón, está en el thread de awt. Si ocupas este thread en unas cuentas que tarden mucho, el thread awt no podrá repintar ni atender al ratón.

Como norma general, cuando al pulsar un botón hagas algo complejo, debes crear un nuevo thread y hacer ese algo complejo en el nuevo thread, liberando el thread de awt.

Se bueno.
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:Cambiar de programa y volver a la aplicación

Publicado por Slurm McKenzie (9 intervenciones) el 28/10/2003 17:07:02
Tomo nota. De momento lo había solucionado invocando a printComponents() para cada pasada de mi proceso, pero desde luego lo que me dices es mucho mejor.

Muchas gracias.
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