elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
27 Mayo 2012, 23:46  


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java (Moderadores: Debci, Leyer)
| | | |-+  [SOLUCIONADO] [Duda] De Threads, Swing, y Non Blocking Calls
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [SOLUCIONADO] [Duda] De Threads, Swing, y Non Blocking Calls  (Leído 756 veces)
RyogiShiki


Desconectado Desconectado

Mensajes: 708


げんしけん - Hikkikomori FTW!!!


Ver Perfil WWW
[SOLUCIONADO] [Duda] De Threads, Swing, y Non Blocking Calls
« en: 15 Noviembre 2011, 01:14 »

Hola Que tal.

Bueno éste es el caso: Tengo dos clases. La primera es un parser XML hecho con SAX. La segunda es una UI hecha en Swing (nada complejo, un JTextField, un JButtony JLabels). Ahora como bien sabemos dentro del EDT (Event Dispath Thread) se realizan todas las operaciones que tienen que ver con el manejo de la GUI por parte de Swing, por lo que no es buena idea hacer llamadas o código bloqueante o si no la UI deja deja de responder. todas las llamadas de este tipo deben ir en un nuevo hilo dentro del método run(). En la clase que parsea el XML se realizan llamadas bloqueantes por lo que se encuentran en un hilo, esta clase se encarga de analizar un archivo XML y llenar sus atributos con la información encontrada. En la clase donde está definida la UI tengo un botón, que se encarga de tomar los datos del JTextField y mandarlos a una búsqueda en el parser. Dentro de la clase que maneja la interfaz gráfica también existe un método que se encarga de mostrar por pantalla los datos recolectados por el parser. Aquí es donde está el problema, y es que no se en que momento llamar a esta función, ya que solo debe ser llamada en el momento en el que el Thread del parser ha terminado, de lo contrario los datos no se muestran correctamente. Y es lo que no he logrado hacer. ¿Cómo hago para llamar el método justo cuando el Thread del parser termina y así mostrar los datos encontrados por pantalla?

Gracias a todos de antemano.


« Última modificación: 15 Noviembre 2011, 14:58 por RyogiShiki » En línea

RyogiShiki


Desconectado Desconectado

Mensajes: 708


げんしけん - Hikkikomori FTW!!!


Ver Perfil WWW
Re: [Duda] De Threads, Swing, y Non Blocking Calls
« Respuesta #1 en: 15 Noviembre 2011, 14:56 »

Bueno. Al final lo he resulto. La solución a mis problemas: SwingWorker, que me permite hacer la BlockingCall sobrescribiendo el método doInBackground(), y sobrescribiendo el método done() que se ejecutará en el EDT una vez doInBackground haya finalizado. Así que doy este tema por terminado.


« Última modificación: 15 Noviembre 2011, 15:11 por RyogiShiki » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Duda]Enviar y Recibir archivos en segundo plano[Threads-Solucionado(Builder)]
Programación C/C++
sulrun 7 1,083 Último mensaje 30 Abril 2007, 23:26
por Ragnarok
DUDA SOBRE SWING
Java
afaayfab 2 803 Último mensaje 12 Junio 2007, 14:56
por nucleo
Nokia N70 Blocking code?
Dispositivos Móviles (PDA's, Smartphones)
Jamaikiniano 0 298 Último mensaje 6 Enero 2008, 15:50
por Jamaikiniano
duda sobre hilos (threads)
Programación C/C++
Achernar 1 438 Último mensaje 28 Febrero 2008, 18:54
por Eternal Idol
Rapidez entre distincia de los Calls?
ASM
RHL 5 710 Último mensaje 6 Abril 2012, 21:57
por jacosito
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines