Gui darstellung

eagle

Mitglied
Hallo zusammen

ich möchte in eimen Gui die angezeigten Komponenten auswechseln.
ich habe es mit this.getContentPane().removeAll versucht und danach die neuen Componenten eingefügt. wenn ich nun aber ein repaint mache. ist das Gui leer und beinhaltet nichts mehr.
Ich habe die diversen Ansichtsmöglichkeiten in eigene Methoden geschrieben. Es funktionieren alle, wenn ich sie als erste aufrufe. Bei einem Aufruf über einen Button funzt nicht mehr, dann ist das gui nur noch grau.

wer kann mir da weiterhelfen?

thx im voraus eagle
 
Servus!

Versuch dich mal an den Methoden von JFrame:

validate()
validateTree()

bzw. verusch mal folgendes:

setzte alle "alten" Komponenten in ein JPanel (jp_Alt) und alle neuen in ein JPanel (jp_Neu) ... nun fügst du dem JFrame zuerst das alte Pannel hinzu und später entfernst du über den Button einfach nur das alte Panel und fügst das neue Panel hinzu ...

Kannst das ja mal ausprobieren ...

oder versuche mal:

updateUI()

Gruss Tom
 
Zuletzt bearbeitet:
Hallo,
Du mußt dem Layoutmanager schon mitteilen, daß er sich neu berechnen soll, wie schon gesagt.
Ist der betreffende Container von JComponent abgeleitet(Swing) reicht nach der Änderung ein revalidate() und danach das repaint(). Standardmäßig ist die contentpane aber ein Container, dem vorher mitgeteilt werden muß, daß sich das Layout ändert (invalidate) und nachher mittels validate zur Neuberechnung aufgefordert wird. Kannst das aber z.B mittels setContentPane(new JPanel()) ändern.
Gruß,
Tim
 
Zuletzt bearbeitet:
TiSch hat gesagt.:
Hallo,
Du mußt dem Layoutmanager schon mitteilen, daß er sich neu berechnen soll, wie schon gesagt.
Ist der betreffende Container von JComponent abgeleitet(Swing) reicht nach der Änderung ein revalidate() und danach das repaint(). Standardmäßig ist die contentpane aber ein Container, dem vorher mitgeteilt werden muß, daß sich das Layout ändert (invalidate) und nachher mittels validate zur Neuberechnung aufgefordert wird. Kannst das aber z.B mittels setContentPane(new JPanel()) ändern.
Gruß,
Tim
Super danke,d as mit dem invalidate und validate hat super geklappt! Klasse sache! :)
 
Zurück