Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Swing se queda "colgada" mientras ejecuta otro proceso

Estas en el tema de Swing se queda "colgada" mientras ejecuta otro proceso en el foro de Java en Foros del Web. Buenas tardes a todos. Tengo un programa con un JFrame donde voy mostrando distintos aspectos de la ejecución de mi programa a través del un ...
  #1 (permalink)  
Antiguo 27/05/2013, 08:03
 
Fecha de Ingreso: julio-2012
Ubicación: Madrid
Mensajes: 95
Antigüedad: 12 años, 4 meses
Puntos: 2
Swing se queda "colgada" mientras ejecuta otro proceso

Buenas tardes a todos.

Tengo un programa con un JFrame donde voy mostrando distintos aspectos de la ejecución de mi programa a través del un JTextArea (en plan, "aplicación iniciada", "cliente conectado", ...)

El problema que tengo es que al estar ejecutando el programa, la ventana JFrame se queda colgada y no muestra ningún mensaje (y eso que he comprobado que los mensajes, en teoría, se envian al JTextArea). Es mas, si minimizo y vuelvo a cargar la ventana. ésta aparece completamente en negro.

No se si esto es problema de hilos o por el estilo. ¿Alguna idea de qué puedo mirar?
  #2 (permalink)  
Antiguo 27/05/2013, 08:50
 
Fecha de Ingreso: marzo-2013
Mensajes: 6
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Swing se queda "colgada" mientras ejecuta otro proceso

Puedes ser más específico?

Un saludo
  #3 (permalink)  
Antiguo 27/05/2013, 09:02
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Swing se queda "colgada" mientras ejecuta otro proceso

Sí, tiene pinta de ser un problema de hilos. Hay un hilo de java encargado de dibujar las ventanas y que desgraciadamente es el mismo hilo que usa java para avisar de eventos en los botones, menús, etc.

Si como consecuencia de la pulsación de un botón haces tareas que tardan mucho, toda la interfaz java se queda "bloqueada", incapaz de atender más eventos e incluso de repintarse correctamente (minimizar y maximizar o incluso pasear otra ventana de otra aplicación por encima) mientras se esté ejecutando esa tarea tuya que tarda.

La solución es lanzar un hilo separado nada más pulsar el botón, para hacer esa tarea que tarda.

Tienes todo esto más detallado aquí http://chuwiki.chuidiang.org/index.p...hread)_de_Java

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #4 (permalink)  
Antiguo 27/05/2013, 09:46
 
Fecha de Ingreso: febrero-2013
Mensajes: 2
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Swing se queda "colgada" mientras ejecuta otro proceso

Podrias hacer un hilo independiente. Por ejemplo lo podias hacer en otra clase y por ejemplo poner el JTextArea en public static para poder acceder a el e ir imprimiendo lo que usted desee.
por ejemplo

class miTarea exteds Thread{
//Aqui harias lo que tienes que hacer

//para imprimir
claseDondeSeEncuentarElTextArea.JTextArea.setText( Lo que quieras imprimir);
}

Creo que de esa forma te podria funcionar, espero averte ayudado

Etiquetas: ejecuta, mientras, proceso, programa, queda, swing
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:31.