JFrame erst sichtbar machen wenns geladen ist

v_zero

Mitglied
Wenn ich mein JFrame aufrufe erscheint immer zuerst das Fenster mit einer leeren, weißen Fläche und der Inhalt erst kurze Zeit später.

Nicht das es mich besonders stören würde, aber vielleicht kann man das ganze etwas eleganter machen. 🙂
 
?? rufe halt setVisible(true) erst ganz am Ende auf...oder verstehe ich dich falsch? ;/ (Code könnte auch helfen)

Der Quellcode ist etwas lang...
Im großen und ganzen siehts so aus:


Der Aufruf mit:
Java:
	Main() {
		//viel Quelltext
		mainWindow = new MainWindow();
	}

Innerhalb einer Unterklasse:
Java:
		MainWindow() {
			//viel Quelltext
			setVisible(true);
			requestFocus(true);
		}

Wie man sieht ruf ich setVisible erst am Ende auf :-/
Hier noch ein Bild wie es die ca. erste Sekunde beim starten aussieht.
 

Anhänge

  • fenster.jpg
    fenster.jpg
    25,1 KB · Aufrufe: 35
ja also, wo liegt dann dein problem??
aber auch mit setVisible am ende kommts halt darauf an wie schnell dein pc das fenster anzeigen kann...
 
ja also, wo liegt dann dein problem??
aber auch mit setVisible am ende kommts halt darauf an wie schnell dein pc das fenster anzeigen kann...

Ich dachte nur dass es eventuell möglich wäre das Fenster gleich mitsamt dem Inhalt zu öffnen, so wie das viele Programme machen. (Also längere Vorladezeit)
Wenn das nicht geht ist es auch nicht schlimm.
 
Mach doch mal nen kleines KSKB fertig. Mit ein wenig Code lässt sich einfacher sagen obs an dem Code oder an der hardware liegt.

Man kann zwar sagen, dass Swing nicht das schnellste ist, aber dass nen Fenster über ne sek lang weiß bleibt hatte ich auch noch nicht 😉
 
Okay, ich habs.

Das Laden einer (sehr großen) Font hat den Aufbau des Fensters stark verzögert.
Da diese nicht zwangsläufig zu Programmstart gesetzt werden muss konnte ich sie aus dem Konstruktor entfernen.

Unglaublich was so ein kleines JLabel an Perfomance kosten kann. 🙂
 

Zurück
Oben