JProgressbar an ExecutorService koppeln

Status
Nicht offen für weitere Antworten.

Cheefrocker

Bekanntes Mitglied
Hallo zusammen!

Ich habe ein ExecutorService den ich wie folgt verwende:

Code:
ExecutorService executor;
        executor = Executors.newFixedThreadPool(AnzahlThreads);

    for (int i = 0; i < t.length; i++) {

            // RunnablePrinter n = new RunnablePrinter(t[i],Input,i);
            PrintURL n = new PrintURL(((File) t[i]).getAbsoluteFile().toString(), Output.getAbsolutePath().toString(), i, xml[i].toString());
            executor.submit(n);

        }


Mein Problem ist nur, das er zwar alles abarbeitet aber ich nicht den Fortschritt sehe. Wie kann ich nun diese Verarbeitung in einem jProgressbar anzeigen! bzw an welcher Stelle könnte ich ein Progressbar implementieren.


[/code]
 

DocRandom

Top Contributor
Hi Cheefrocker!

..ä'hm wie meinst das jetzt?
Soll die ProgressBar in der For-Schleife aktualisiert werden?
Oder wie?
Oder willst Du innerhalb des/der Threads eine Aktualisierun?

Aus dem bisschen Code kann Dir keiner weiterhelfen.

lg
DocRandom
 
G

Gast

Gast
Hallo @DocRandom

Ich möchte den aktuellen Verarbeitungsstatus von dem executorService herausfinden. nach der For-Schleife arbeitet er ja die Threads ab, aber ich weis nicht wann er fertig ist und wielange esnoch dauert.
 

Niki

Top Contributor
Was machen deine PrintURL Threads? Poste mal ein wenig code. Wenn die mehrere Schritte haben musst die Anzahl der Schritte mit der Anzahl der PrintURL-Threads multiplizieren. Das ist dann dein max-Value der Progressbar. den PrintURL Objekten kannst du dann ein selbst gestricktes Interface von Progressable mitgeben. Jeder PrintURL Thread zählt dann nach jedem Schritt den aktuellen Wert der Progressbar um eins hoch. Wo du die Progressbar hin legst ist dir überlassen. Du kannst einen eigenen Dialog dafür erstellen oder in einen bereits vorhandenem Fenster platzieren.
Code:
public interface Progressable {
	public void reset();
	public void init(int maxValue);
	public void increment();
}

Code:
public class ProgressBar extends JProgressBar {	

	public ProgressBar() {
		super();		
	}
	
	public void reset(){
		setValue(0);
		setMaximum(0);
	}
	
	public void init(int maximum){
		setValue(0);
		setMaximum(maximum);
	}

	public void increment(){
		setValue(getValue()+1);
	}

}

Vielleicht hilft dir das ja weiter
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G JProgressBar in JOptionpane? Allgemeine Java-Themen 16
G JProgressBar wird nicht angezeigt. Allgemeine Java-Themen 2
T JProgressbar ändert werte nicht Allgemeine Java-Themen 28
R JProgressBar Allgemeine Java-Themen 14
V JProgressbar, woher Prozentwerte? Allgemeine Java-Themen 2
T JProgressBar Allgemeine Java-Themen 9
F JProgressBar benutzen Allgemeine Java-Themen 5
S Probleme mit JProgressbar! Allgemeine Java-Themen 2
F ExecutorService richtig anwenden Allgemeine Java-Themen 0
M ExecutorService, fängt nicht an Allgemeine Java-Themen 1
F ExecutorService sauber stoppen Allgemeine Java-Themen 8
S ExecutorService.invokeAll -- was passiert wenn einige Tasks schon ausgefuehrt wurden? Allgemeine Java-Themen 2
K Parallel programmieren mit ExecutorService Allgemeine Java-Themen 41
M callable in ExecutorService killen? Allgemeine Java-Themen 14
C Threads ExecutorService shutdown abbrechen und service "starten" ? Allgemeine Java-Themen 3
S ExecutorService Frage (concurrent Threads) Allgemeine Java-Themen 4
D Thread.setUncaughtExceptionHandler() für ExecutorService Allgemeine Java-Themen 4
O Unterschied zwischen Semaphoren/Lock und ExecutorService Allgemeine Java-Themen 3
faetzminator verschiedene Beans, verschiedene Felder "koppeln" Allgemeine Java-Themen 3
N 2 Arrays koppeln (synchronisieren) Allgemeine Java-Themen 25

Ähnliche Java Themen

Neue Themen


Oben