elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  [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 2,976 veces)
RyogiShiki


Desconectado Desconectado

Mensajes: 745


げんしけん - Hikkikomori FTW!!!


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

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 pm por RyogiShiki » En línea

RyogiShiki


Desconectado Desconectado

Mensajes: 745


げんしけん - Hikkikomori FTW!!!


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

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 pm por RyogiShiki » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
DUDA SOBRE SWING
Java
afaayfab 2 2,578 Último mensaje 12 Junio 2007, 14:56 pm
por nucleo
Duda Swing
Java
ervays 2 2,236 Último mensaje 15 Noviembre 2013, 13:49 pm
por ervays
Duda con pool de threads en java
Java
xoker 0 1,675 Último mensaje 11 Enero 2014, 20:50 pm
por xoker
Duda con threads o hilos
Java
.:UND3R:. 1 2,436 Último mensaje 14 Febrero 2014, 17:59 pm
por Gh057
[AYUDA] Threads y swing JProgressBar
Java
LaThortilla (Effort) 0 1,565 Último mensaje 5 Octubre 2015, 21:18 pm
por LaThortilla (Effort)
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines