# JFileChooser öffnet sich in manchen Fällen extrem langsam!



## java.jago (15. Okt 2007)

Hi,

Ich habe ein Programm wo ich einen JFileChooser öffne. Wenn ich ihn unter Eclipse öffne geht es in ca. 1 sec. Ich mache täglich einen Build mit Ant und starte es auch als jar via java -jar app.jar von der Konsole.

Bisher gab es sowohl bei dem Eclipse als auch bei dem Ausführen als Build keine Unterschiede.

Nun öffnet sich aber seit heute der JFileChooser wenn ich das Programm builde in ca. 5 sec. Jedesmal - nicht nur das erstemal!

Was ist da los? Für mich ist das unerklärlich. Es ist wirklich nur eine actionPerformed() methode die aufgerufen wird und den JFileChooser öffnet. Bisher lief das immer sehr sehr schnell. Ein Rätsel.

Habt ihr irgendeine Idee? Ich greife nach jedem Strohhalm...

Gruss,
jago


----------



## Wildcard (15. Okt 2007)

Evtl. eine Exception? Wenn eine Exception fliegt bremst das die GUI erstmal aus.


----------



## java.jago (16. Okt 2007)

Wildcard hat gesagt.:
			
		

> Evtl. eine Exception? Wenn eine Exception fliegt bremst das die GUI erstmal aus.



Eigentlich nicht - ich führe es auf der Konsole aus - sollte also sehen wenn was schiefgeht. Aber ich teste es mal aus.

Irgendeine andere Idee?


----------



## thE_29 (16. Okt 2007)

Also bei mir öffnet er sich beim ersten mal auch langsam!

Aber eigentlich nur beim ersten mal..


----------



## L-ectron-X (16. Okt 2007)

Wenn ich weiß, dass ich einen Chooser benötige, instanziiere ich ihn gleich im Konstruktor der Klasse, von welcher er aufgerufen werden soll. Wenn es soweit ist, ist der Chooser eigentlich sofort zur Stelle, ganz ohne Wartezeit - auch beim ersten Mal.


----------



## Guest (17. Okt 2007)

L-ectron-X hat gesagt.:
			
		

> Wenn ich weiß, dass ich einen Chooser benötige, instanziiere ich ihn gleich im Konstruktor der Klasse, von welcher er aufgerufen werden soll. Wenn es soweit ist, ist der Chooser eigentlich sofort zur Stelle, ganz ohne Wartezeit - auch beim ersten Mal.



Ja klar mach ich auch. Unter Linux baut er sich auch blitzschnell auf. Wenn ich das Programm unter Eclipse und Windows starte dauert es sehr kurz. Wenn ich aber das Programm als .jar packe und dann ausführe dauert es ewig - 5 sec.

Gewohnt bin ich beim ersten öffnen 1-2 sec. top! Wie kann ich checken was da los ist??? Irgendeine Idee?


----------



## Xams (17. Okt 2007)

Vielleicht gib doch mal auf der Konsole aus.
"Jetzt wird der FileChooser konstruiert"
Jetzt wird er geööfnet"...


----------



## AntiCampeR (20. Jan 2009)

Is zwar n bissel spät aber versuchs ma mit FileDialog des geht recht flott


----------



## L-ectron-X (20. Jan 2009)

Mit Benutzung des FileDialoges würdest du Swing mit AWT vermischen, was immer Risiken und Probleme mit sich bringen kann.
Meistens liegts wirklich am Zeitpunkt der Instanziierung. Wenn man den JFileChooser erst kurz vor seinem Sichtbarmachen instanziiert, kommt es zu einer Verzögerung in Folge der Objekterzeugung.
Wenn man das aber schon im Vorfeld erledigt, braucht er nur noch sichtbar gemacht werden, und das geht in aller Regel in weniger als 1 Sekunde.


----------



## Wildcard (20. Jan 2009)

Die häufigste Ursache ist ein katastrophaler Bug im Windows L'n'F. Dort sind die Verknüpfungen Desktop, Eigene Dateien,...
Liegt nun an einer dieser Stellen ein großes Zip, oder mehrere kleinere, braucht der JFileChooser extrem lange.
Sollte allerdings ab Update 10 behoben sein.
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5050516


----------



## L-ectron-X (20. Jan 2009)

OK, gut zu wissen, dass es noch weitere Quellen für Verzögerungen gibt.


----------



## Verjigorm (21. Jan 2009)

Der Bug wurde übrigends mit Update 10 behoben


----------



## Wildcard (21. Jan 2009)

Wildcard hat gesagt.:
			
		

> Sollte allerdings ab Update 10 behoben sein.
> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5050516


----------

