G
Guest
Gast
Hallo zusammen,
folgendes Problem:
ich habe ein JFrame, der sich automatisch auf die volle Bildschirmgröße streckt. Innerhalb des JFrames ist eine selbst gebastelte Komponente (d.h. ein Objekt, dessen Klasse von java.awt.Component abgeleitet ist) enthalten, die sich an die Breite des JFrames anpasst. Innerhalb dieser Komponente wird die Funktion this.getWidth() benötigt. Dummerweise baut sich der Inhalt dieser Komponente offenbar schon auf, bevor das JFrame überhaupt fertig ist, die Funktion this.getWidth() liefert also den Wert 0. Entsprechend sieht der Inhalt der Komponente beim öffnen des Frames nicht so aus, wie er aussehen soll.
Ich hab das Problem bisher so umgangen, dass ich mit Thread.sleep() eine halbe Sekunde gewartet habe und dann nochmal ein repaint auf der Komponente aufgegerufen hab, dann hat das geklappt. Schöner wäre aber natürlich, wenn mir der Frame irgendwie melden könnte "So, bin Fertig, jetzt liefert auch die Methode getWidth() auf deiner komischen Komponente einen vernünftigen Wert."
Geht das irgendwie?
Danke schonmal.
Jochen
folgendes Problem:
ich habe ein JFrame, der sich automatisch auf die volle Bildschirmgröße streckt. Innerhalb des JFrames ist eine selbst gebastelte Komponente (d.h. ein Objekt, dessen Klasse von java.awt.Component abgeleitet ist) enthalten, die sich an die Breite des JFrames anpasst. Innerhalb dieser Komponente wird die Funktion this.getWidth() benötigt. Dummerweise baut sich der Inhalt dieser Komponente offenbar schon auf, bevor das JFrame überhaupt fertig ist, die Funktion this.getWidth() liefert also den Wert 0. Entsprechend sieht der Inhalt der Komponente beim öffnen des Frames nicht so aus, wie er aussehen soll.
Ich hab das Problem bisher so umgangen, dass ich mit Thread.sleep() eine halbe Sekunde gewartet habe und dann nochmal ein repaint auf der Komponente aufgegerufen hab, dann hat das geklappt. Schöner wäre aber natürlich, wenn mir der Frame irgendwie melden könnte "So, bin Fertig, jetzt liefert auch die Methode getWidth() auf deiner komischen Komponente einen vernünftigen Wert."
Geht das irgendwie?
Danke schonmal.
Jochen