Wie zeige ich verschiedene Karten in einem CardLayout?

Ich habe mir ein Codebeispiel angesehen, in dem dieser Code verwendet wurde:

cl.show(cardPanel, "" + (currentCard));

Aber wenn ich benutzeshow Ich erhalte in Eclipse die Nachricht, dass es veraltet ist und ich frage mich, ob es eine andere Möglichkeit gibt, die verschiedenen Karten im CardLayout anzuzeigen, wenn ich auf die Schaltflächen klicke. Unten ist der Code für meine CardLayout-Klasse. Vorschläge sind auch willkommen, wenn ein Teil des Codes eine schlechte Praxis ist. Vielen Dank!

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

public class CardLayoutTest extends JFrame implements ActionListener {

// Ref
 private JPanel cardPanel, jp1, jp2, buttonPanel;
 private JLabel jl1, jl2;
 private JButton btn1, btn2;
 private CardLayout cardLayout;

// Konstruktor
 public CardLayoutTest()
 {
     setTitle("Test med CardLayout");
     setSize(600,400);

     cardPanel = new JPanel();
     buttonPanel = new JPanel();

     cardPanel.setLayout(cardLayout);

     jp1 = new JPanel();
     jp2 = new JPanel();

     jl1 = new JLabel("Card 1");
     jl2 = new JLabel("Card 2");

     jp1.add(jl1);
     jp2.add(jl2);

     cardPanel.add(jp1, "1");
     cardPanel.add(jp2, "2");

     btn1 = new JButton("Show Card 1");
     btn2 = new JButton("Show Card 2");

     buttonPanel.add(btn1);
     buttonPanel.add(btn2);

     getContentPane().add(cardPanel, BorderLayout.NORTH);
     getContentPane().add(buttonPanel, BorderLayout.SOUTH);

     btn1.addActionListener(this);
 }

     public void actionPerformed(ActionEvent event)
     {
        // ??? Show card 1 ???

        // ??? Show card 2 ???
     }

 public static void main(String[] args) {
     CardLayoutTest frame = new CardLayoutTest();

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    } 
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage