Wie kann ich unter Java prüfen lassen, ob ein Fenster bereits gezeichnet wurde?

2 Antworten

Das Hauptfenster erscheint automatisch, wenn alle Initialisierungen und das Laden der Voreinstellungen abgeschlossen sind. Da mußt du nichts prüfen!

Allerdings kann man diese „Ladearbeiten“ be- und entschleunigen – je nach der Wichtigkeit, die man für die einzelnen Ladevorgänge empfindet. Als Java-Neuling ist dieser Teilaspekt der Programmierung eher was für fortgeschrittenere Java-Programmierer. Dieses Feintuning kannst du machen, wenn die App grundsätzlich so funktioniert, wie du es dir vorstellst …

Insbesondere hängt dies von der Art der App ab. Ein Spiel kann auch mal einen Moment länger laden als eine Datenbank. Gerade Datenbanken benötigen eben ihre Zeit, bis die Daten einer Abfrage zusammengestellt sind.

Anbei noch ein paar hoffentlich allgemeine Buchtipps zu dem Thema: http://www.gutefrage.net/tipp/programmiersprachen-lernen

Freakooo90 
Fragesteller
 29.04.2014, 15:10

Naja.. also bei meinem Programm handelt es sich eher um eine GUI für zwei Konsolenprogramme.... weil ich immer zu faul bin das alles einzutippen :D Im Grunde muss es also nur die GUI verarbeiten (die jetzt auch nicht wahnsinnig kompliziert ist.. kann hier ja mal ein Foto reinstellen http://puu.sh/8sbde.png)..

Also es ist ja jetzt auch nicht so, als ob die Ladezeit unfassbar ewig dauern würde.. beim ersten Start nach Neustart dauert es so 5- 10 Sekunden bis das Fenster erscheint. Danach sind es meistens 2.. allerdings beim ersten Start stört es mich halt etwas, das in den 10 Sekunden absolut nichts passiert. Und da es sich bei dem "Programm" mehr um ein Übungsprogramm handelt, wo ich halt verschiedene Dinge ausprobiere, hätte ich da ganz gerne so eine Art Ladescreen.. einfach weil es schicker aussieht wie ich finde, als wenn garnichts passiert... und für zukünftige Projekte hätte ich dann ja zumindist schonmal ein Beispiel Programm, bei dem es funktioniert.

0

Das Erstellen (Konstruktion des Objektes) und Zeigen (Aufruf der Sichtbarkeit-Methode) eines JFrame dauert kaum merklich, die Handlungen davor (bzw. erweiterte Initialisierungen des Haupt- und der Kind-Fenster) sind wohl dein Problem. Du kannst entweder die Sichtbarkeit des JFrame abfragen ( *.isVisible() ) oder auf dessen Zeigen-Event warten (siehe WindowListener).

Freakooo90 
Fragesteller
 28.04.2014, 07:47

Okay... ähm..Wo liegt der Vorteil von den jeweiligen Vorgehensweisen? bzw. Nachteil? Oder ist es vollkommen egal und ich kann mir einfach eine aussuchen?

0
Youkakun  28.04.2014, 09:55
@Freakooo90

Das Warten auf das Event ist wahrscheinlich verlässlicher/genauer, zudem du damit das Entfernen des Ladescreens mit der laufenden Event-Verarbeitung veranlassen kannst.

Sowieso sollten diverse Ladevorgänge noch vor dem Erscheinen deines Hauptfensters veranlasst werden und diese Stück-für-Stück den Ladebildschirm aktualisieren, so weit musst du also eigentlich gar nicht erst denken.

0