Swing Fenster State Machine

Hallo Zusammen


Ich habe bereits ein kleines Programm mit Swing programmiert und steh nun vor einer neuen Herausforderung. Ich möchte die Informationen meines Ablaufs teilweise an den Benutzer weitergeben, um diesen auf dem laufenden zu halten was gerade geschieht. Dafür möchte ich ein Ablauf von Fenstern mit Informationstext gestalten um den Benutzer vor ungeduldigem warten und rumdrücken zu bewahren.

Beispielsweise erstelle ich eine Pool Connection mit einer Datenbank. Dies kann bei grosser Auslastung des Netzwerks schnell einmal 5-10 s dauern. Während diesem Zeitraum möchte ich ein Fenster einblenden auf dem ich den Benutzer darüber informieren.

Zusätzlich habe ich nun ein Programm geschrieben, welches zuerst mein Aktuelles Programm von einem Netzwerklaufwerk local auf den Server zieht und anschliessend startet. Auch dort kann dies ein paar Sekunden dauern bis der Austausch gemacht ist und auch dort möchte ich mehrere Fenster hintereinander einblenden um den Benutzer zu informieren.

Nun dachte ich, dass ich ein neues Fenster in Swing erstelle und diese in einer Reihenfolge einblende, da meines Wissens die Zeilen ja 1 ne nach der anderen abgearbeitet werden. Jedoch beim öffnen und erstellen von Swing Komponenten geschieht dies irgendwie erst verspätet und parallel mit dem Code der eigentlich nach der Anweisung zum öffnen geschieht.


Darum meine Frage: Wie gehe ich so eine Benutz-anzeige mit Swing Fenster an. Ich habe das Gefühl, dass ich dies wie eine Art State Machine programmieren müsste? Wie funktioniert genau der zeitliche Ablauf beim Aufrufen und öffnen von Swing Fenstern, funktionier die mit mehreren Threads und wie kann ich dies handeln?


Besten Dank für Eure Vorschläge im Voraus

Gruss Samuel


Gruss Samuel
 
Im Prinzip ist es recht einfach: alles, was im Hintergrund ausgeführt werden soll, darf nicht im UI-Thread (Event Dispatch Thread) ausgeführt werden. Dafür gibt es verschiedene Möglichkeiten, z. B. mit Thread oder mit SwingWorker arbeiten. Außerdem bietet Swing noch einen ProgressMonitor an, der ... naja, den Fortschritt anzeigen soll.
 
Passende Stellenanzeigen aus deiner Region:

Oben