8.6.5 | ProgressMonitor |
Der ProgressMonitor ist eine Erweiterung des JProgressBar insofern, als dass die JProgressBar hier in einem Extra-Fenster geöffnet wird.
Dazu ruft man den Konstruktor mit den Minimum- und Maximumwerten auf und setzt den aktuellen Wert der Verarbeitung (setProgress(int value)) kontinuierlich.
Als besonderes Feature kann man die Zeit einstellen (setMillisToPopup(int value)), wie lange das Fenster warten soll, bevor es geöffnet wird. Der Standardwert von zwei Sekunden verhindert, dass bei geringen Verarbeitungszeiten das Fenster nur kurz aufblitzt und so zu Verwirrungen führt.
Wie bei der JProgressBar ist darauf zu achten, dass der Haupt-Swing-Thread nicht für das Hochzählen benutzt wird, da dieser sonst keine Zeit für das Zeichnen des Dialoges hat.
Das folgende Beispiel startet einen zusätzlichen Thread, so dass der Haupt-Thread nicht geblockt wird.
Thread thread = new Thread (new Runnable() { public void run() { ProgressMonitor pm = new ProgressMonitor( this, "Lade...", "", 0, 100); for (int i = 0; i <= 100; i++) { pm.setProgress(i); // Als Ersatz für eine rechen- // intensive Operation try { Thread.sleep(100); } catch (Exception ex) {} } } }); thread.start ();