Heim  >  Artikel  >  Java  >  Wie tausche ich Panels innerhalb eines JFrame dynamisch aus?

Wie tausche ich Panels innerhalb eines JFrame dynamisch aus?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-25 04:16:02877Durchsuche

How to Dynamically Swap Panels Within a JFrame?

Dynamisches Austauschen von Panels innerhalb eines JFrames

In dieser Java Swing-Anwendung muss ein JPanel innerhalb eines JFrames basierend auf Benutzeraktionen mit einem anderen JPanel ausgetauscht werden. Um den geeigneten Ansatz zu untersuchen, um dies zu erreichen, wurde der folgende Code getestet:

panel = new CustomJPanelWithComponentsOnIt();
parentFrameJPanelBelongsTo.pack();

Dieser Ansatz schlägt jedoch fehl, die Panels zu wechseln.

Lösung: Nutzung von CardLayout

Die ideale Lösung für dieses Szenario liegt in der Verwendung von CardLayout, einem Layout-Manager, der die Anzeige mehrerer Panels ermöglicht und gleichzeitig selektiv nur ein Panel gleichzeitig anzeigt.

Um CardLayout zu implementieren, führen Sie die folgenden Schritte aus kann genommen werden:

  1. Erstellen Sie ein CardLayout-Objekt:

    CardLayout cardLayout = new CardLayout();
  2. Legen Sie das Layout des Containers fest, der die Panels enthält (z. B. der JFrame):

    parentFrameJPanelBelongsTo.setLayout(cardLayout);
  3. Fügen Sie die Panels zum Container hinzu, indem Sie die Einschränkungen des CardLayouts verwenden:

    parentFrameJPanelBelongsTo.add(new CustomJPanelWithComponentsOnIt(), "panel1");
    parentFrameJPanelBelongsTo.add(new AnotherJPanel(), "panel2");
  4. Setzen Sie das anfängliche Panel auf angezeigt werden:

    cardLayout.show(parentFrameJPanelBelongsTo, "panel1");
  5. Ändern Sie das aktive Panel dynamisch basierend auf der Benutzerinteraktion:

    cardLayout.show(parentFrameJPanelBelongsTo, "panel2");

Das obige ist der detaillierte Inhalt vonWie tausche ich Panels innerhalb eines JFrame dynamisch aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn