JPanel löschen neues initialisieren (Swing)

No-Fear

Grünschnabel
Hallo Leute,

ich habe ein JFrame. Dort ist ein JPanel, dass mehrere Buttons und Labels enthält.
Jetzt möchtige ich das JPanel entfernen und ein neues initialisieren.

mit
Code:
frame.remove(panel);
frame.add(new JPanel());

funktioniert es nicht. Kann mir jemand helfen?

Marcel
 
Ja also, die Labels und Buttons sind alle noch sichtbar. Ich kann sie aber nicht mehr anklicken. Außerdem sind sie in einem LayeredPane hinzugefügt worden. Es ist alles noch sichtbar. setVisible(false) hat auch nichts gebracht.
 
Moin,
Ja also, die Labels und Buttons sind alle noch sichtbar. Ich kann sie aber nicht mehr anklicken. Außerdem sind sie in einem LayeredPane hinzugefügt worden. Es ist alles noch sichtbar. setVisible(false) hat auch nichts gebracht

also, mit setVisible wird nur die Sichtbarkeit gesetzt, das hilft Dir nichts ...

Ich weiß nicht genau, ob das auch bei einen Frame hilft, aber versucht mal :
Java:
frame.remove( panel );
frame.validate(); // <--- ******
frame.add( new JPanel() );

Gruß
Klaus
 
Moin,


also, mit setVisible wird nur die Sichtbarkeit gesetzt, das hilft Dir nichts ...

Ich weiß nicht genau, ob das auch bei einen Frame hilft, aber versucht mal :
Java:
frame.remove( panel );
frame.validate(); // <--- ******
frame.add( new JPanel() );

Gruß
Klaus

Danke, ich weiß nicht warum aber es klappt. Hatte das nämlich auch schon mal ausprobiert da ging es noch nicht.

Gruß
Marcel
 
Ich bins nochmal. Ich habe jetzt ein neues Problem. Wenn ich das Programm starte ist das Fenster leer. Erst wenn ich die Fenstergröße mit der Maus änder, baut sich das Fenster mit dem JPanel auf.
Weiß einer woran es liegt?
 
Rufe nach dem validate() des ContentPane update(Graphics) des JFrames auf ... also sowas
Java:
JFrame.validate();
JFrame.update(JFrame.getGraphics());
Das sollte dein Problem lösen.
 
Zuletzt bearbeitet von einem Moderator:
Ich habe es schon mal irgendwo anders geschrieben , aber ich wiederhole es hier lieber nochmal :

Container.validate();
Frame.update(Framge.getGraphics());

ist nicht DIE non-plus-ultra Lösung ... es ist lediglich eine funktionierende Lösung.
Wenn jemand eine "schönere" Variante hat bitte mal posten.

PS : Thread bitte als erledigt makieren
 
Zurück