Erscheinungsdauer des ProgressMonitor

Status
Nicht offen für weitere Antworten.
L

Lodric

Gast
Hallo zusammen!

Da in meiner Anwendung ein Thread läuft, der zum Teil einige Tausend Dateien abarbeitet, wollte ich einen ProgressMonitor einbauen. Dabei ist mir aufgefallen, dass dieser schneller sichtbar wird, je weniger Dateien er abarbeiten muss. Bei 500 Dateien ist er fast sofort sichtbar und visualisiert den Fortschritt; bei 50000 muss man erst eine geraume Zeit warten, bis das Fenster erscheint.

Kann mir jemand verraten, warum das so ist und wie man einstellen kann, dass das Fenster dennoch sofort sichtbar sein soll?

Grüße, Lodric
 
G

Guest

Gast
Hmmm.... wäre möglich. Komisch finde ich nur folgendes:

Ich habe mir den Beispielcode auf dieser Seite einmal angesehen http://www.iam.ubc.ca/guides/javatut99/uiswing/components/progress.html und das Maximum auch mal auf eine höhere Zahl gestellt.
Und auch dort habe ich festgestellt, dass der Monitor erst nach einer gewissen Zeit erscheint.
Ist der Code in diesem Beispiel nun auch nicht korrekt?

Grüße, Lodric
 
C

Coren

Gast
Guten Morgen!

Habe mich mal bei euch registriert =)

Vielleicht kann ja mein Code helfen, den Grund zu finden, wobei ich es wie gesagt seltsam fand, dass auch die Demo auf dieser Seite dieselben Symptome aufweist.

Grüße, Coren


Code:
...

public class Drucken {

	private boolean erfolgreich = true;

	private int go;

	private int anz;

	private int akt;

	private ProgressMonitor pm;

	public synchronized boolean Drucken(int start, int anzahl) {
		go = start;
		anz = anzahl;
		
		pm = new ProgressMonitor(null,
				"Drucke...",
				"", 0, anz);
		pm.setMillisToDecideToPopup(0);
		pm.setMillisToPopup(0);
		pm.setProgress(0);

		Thread thread2 = new Thread(new Runnable() {
			public void run() {

				...				

				try {
					for (akt = 0; akt < anz; akt++) {
						pm.setProgress(akt + 1);
						pm.setNote(akt + " von " + anz);

						...
					}

					...

					}
				} catch (IOException e) {
					JOptionPane.showMessageDialog(null, e.getMessage(),
							"Fehler", JOptionPane.ERROR_MESSAGE);
				}
			}
		});
		thread2.start();

		return erfolgreich;
	}
}
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben