Zwischen verschiedenen JPanel wechseln

Asmodisixsixsix

Grünschnabel
Guten Tag Community,
hoffentlich könnt ihr mir helfen, da ich schon sehr lange an einer Problematik sitze.
Folgendes:
Ich habe eine Hauptklasse ("GUI"), welche ein Frame mit einem JPanel contentPane ist, welches (wie der Name schon sagt) das contentPane der GUI ist. Auf diesem JPanel will ich ein weiteres JPanel ("Start") darstellen. Das JPanel Start beeinhaltet auch einen JButton. Wenn man auf diesen drückt, soll ein anderes JPanel an Stelle von Start dargestellt werden. Meine Idee (eine von vielen) war es, in den ActionPerformed dieses Buttons ganz einfach zu schreiben:
Code:
Start start = new Start();
ZweitesPanel zwei = new ZweitesPanel();
start.setVisible(false);
zwei.setVisible(true);
Dies funktioniert allerdings nicht. Ich will gerne wissen:
1. Ist diese Lösung "sauber" oder gibt es bessere
2. Wenn ja, welche Lösung wäre angebracht

Danke im voraus für jede Hilfe,
Asmodisixsixsix

EDIT: Achja, das contentPane von der GUI hat ein AbsoluteLayout, falls das etwas zur Sache tut.
 
Zuletzt bearbeitet:

genodeftest

Erfahrenes Mitglied
Wie wäre es, wenn du das erste Panel aus dem Container entfernst und das andere Panel zum Container hinzufügst? Ein Aufruf von SwingUtils.updateComponentTreeUI() (oder so ähnlich) könnte nötig sein.
 

Akeshihiro

Erfahrenes Mitglied
Auch nicht so besonders schick. Eine in meinen Augen bessere Variante wäre das Nutzen des CardLayout als LayoutManager. Dabei kann man mehrere Panel registrieren und ein ganz bestimmtes nach vorne holen. Man kann sich das wie ein Kartenstapel vorstellen. Man hat mehrere Karten und kann eine x-beliebige aus den Stapel rausholen und oben drauflegen und diese sieht man dann oder man wechselt die Karten entsprechend ihrer Reihenfolge aus. Das CardLayout macht das ganz gut und man muss sich nix selbst zusammenfummeln.