B
barbara21
Gast
Hallo zusammen
ich versuche seit mehreren Stunden erfolglos folgendes Problem zu lösen:
Mit Hilfe einer Gui-Oberfläche stelle ich diverse Parameter für ein Objekt ein und übergebe dieses Objekt anschliessend einer Klasse Generator.
Der Generator erstellt mit Hilfe des übergebenen Objekts und verschiedenen Templates (.txt) ein langes txt-Dokument, kann ja nach Parameter bis zu einer Million Zeilen enthalten. Dies geschieht mit Hilfe von verschiedenen Schleifen, welche über die verschiedenen ArrayListen des übergebenen Objekts laufen. Nun würde ich gerne dem Benutzer / der Benutzerin den Status der äussersten Schleife (entspricht dem ungefähren Fortschritt) mit einer JProgressBar ausgeben.
Allerdings weiss ich nicht genau wie, bei mir friert die ProgressBar während dem Prozess immer ein (gar kein Fortschrittsbalken zu sehen) und es erscheint dann ca. 90% sobald der Prozess abgeschlossen ist.
Hier eine vereinfachte Darstellung des Problems
Habe selber keine grosse Erfahrung mit Multithreading und propertyChangeListener etc...
Ich wäre sehr dankbar, wenn mir jemand helfen könnte.
Viele Grüsse Barbara
ich versuche seit mehreren Stunden erfolglos folgendes Problem zu lösen:
Mit Hilfe einer Gui-Oberfläche stelle ich diverse Parameter für ein Objekt ein und übergebe dieses Objekt anschliessend einer Klasse Generator.
Der Generator erstellt mit Hilfe des übergebenen Objekts und verschiedenen Templates (.txt) ein langes txt-Dokument, kann ja nach Parameter bis zu einer Million Zeilen enthalten. Dies geschieht mit Hilfe von verschiedenen Schleifen, welche über die verschiedenen ArrayListen des übergebenen Objekts laufen. Nun würde ich gerne dem Benutzer / der Benutzerin den Status der äussersten Schleife (entspricht dem ungefähren Fortschritt) mit einer JProgressBar ausgeben.
Allerdings weiss ich nicht genau wie, bei mir friert die ProgressBar während dem Prozess immer ein (gar kein Fortschrittsbalken zu sehen) und es erscheint dann ca. 90% sobald der Prozess abgeschlossen ist.
Hier eine vereinfachte Darstellung des Problems
Code:
class GUI {
....
// beim Klick auf irgendeinen Button
String code = Generator.generiereCode(meinObjekt);
.....
}
class Generator {
public static String generiereCode(MeineObjekt meinObjekt) {
String code = "";
for(int i = 0; meinObjekt.irgendEineListe.size(); i++) {
//hier werden viele weitere "Untermethoden" aufgerufen, so dass der
// Durchlauf einer Iteration relativ viel Zeit (~z.b. 1minute) beanspruchen kann
//Hier müsste also die ProgressBar dann bei jeder Erhöhung von i angepasst werden
}
return code;
}
}
Habe selber keine grosse Erfahrung mit Multithreading und propertyChangeListener etc...
Ich wäre sehr dankbar, wenn mir jemand helfen könnte.
Viele Grüsse Barbara