Tengo:
La clase principal, una clase secundaria (procesa información) y una interfaz para informar a la clase principal sobre el proceso que se está realizado.
En La Clase principal:
Se tiene una instancia de la clase Secundaria a la cual se le pasa una instancia de la interface Proceso.
Se tiene una barra de progreso (JProgressBar) que se modificara mediante la llamada al método onProgress de la interface Proceso.
El problema es el siguiente:
Al llamar al método Proceso desde la clase Secundaria no se actualiza el progressbar si no hasta que finaliza todo el proceso
Clase Principal:
Código
Clase Secundaria:
public static Progreso listener = new Progreso() { @Override public void onProgress(int proceso) { progres.setValue(proceso); } }; progres.setVisible(true); ventana.add(progres); ventana.setVisible(true); Secundaria sec = new Secundaria(listener); sec.Prosesar(); } }
Código
class Secundaria{ private Progreso listener; Secundaria(Progreso listener){ this.listener = listener; } public void Prosesar(){ int count = 0; while(count > 100){ count++; listener.onProgress(count); } } }
Interfaz Prosesar:
Código
public interface Progreso { void onProgress(int proceso); }