# JFrame "leeren"



## gladiator09 (3. Mai 2008)

hey leute!

ich habe eine methode guiErzeugen(), die mir - je nachdem ob ein boolscher wert true oder false ist - entweder ein JLabel oder ein JTabbedPane erzeugt... am anfang ist meine variable false und er macht mir das JLabel...

wenn ich die jetzt aber auf true setze und die methode guiErzeugen() wieder aufrufe, dann macht er mir zwar das JTabbedPane, aber das JLabel ist immernoch da (überschneidet sich)...

gibts eine möglichkeit den ganzen JFrame zu "leeren" und dann das JTabbedPane in der guiErzeugen() von grund an neu zeichnen zu lassen?

danke,
gladiator


----------



## tfa (3. Mai 2008)

Entweder du rufst removeAll() auf oder du schmeißt das JFrame-Objekt komplett weg und erzeugst ein neues.


----------



## L-ectron-X (3. Mai 2008)

Probiers mal mit: http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Container.html#remove(java.awt.Component)


```
panel.remove(label);
panel.add(tabbedPane);
validate();
```


----------



## gladiator09 (3. Mai 2008)

wenn ich das removeAll() als erstes in der guiErzeugen() aurufe, dann macht er gar nichts mehr, außer das leere kästchen vom JFrame...

und bei panel.remove() von den beiden und danach ein validate löscht er es mir trotzdem nicht...


----------



## gladiator09 (3. Mai 2008)

ok, ich idiot hab datte JTabbedPane und JLabel als lokale variablen und in der methode guiErzeugen() deifiniert... also klar, der jedes mal beim aufruf das alte nicht enfernen konnte!

lass die beiden jetzt im konstruktor erzeugen und jetzt funktionierts mit frame.remove(xxx)...

thx,
gladiator


----------



## diggaa1984 (3. Mai 2008)

das ist im prinzip die selbe thematik die ich letztens angesprochen hatte, wenn du quasi noch öfter hin und her schalten willst, dann schau ma in den thread hier, das klappt soweit wunderbar:

http://www.java-forum.org/de/topic68618_wechsel-komponenten-mainframe.html


----------

