viernes, 17 de agosto de 2012

Swing Multihilo ProgressBar indeterminate

El anterior ejemplo se utilizo SwingWorker para hacer un llamado a un procedimiento que se demora mucho y de paso no bloquear la interfaz y poder actualizar. Este funciona bien pero por alguna razón no me funcionó igual cuando quería utilizar el progressbar de modo indeterminate. (.setIndeterminate(true)) así que encontré una forma de hacerlo y es en vez de extender el objeto de trabajo de Thread se extiende de SwingWorker, con esto, sobreescribiendo el metodo doInBackground el SwingWorker se encargaría de actualizar la interfaz sin bloquearla.



public class Procesar extends SwingWorker { 
@Override     
protected Object doInBackground() throws Exception {         barra.setIndeterminate(true);        
 // proceso con duración indeterminada         
barra.setIndeterminate(false);         
return "Hecho.";     } }

}

Lógicamente el llamado a dicha clase cambia y ya se ejecutaría con run() sino con execute()


lanzador = new Procesar();
lanzador.execute();


Saludos.

No hay comentarios:

Publicar un comentario