I looked at a sample code that used this code:
cl.show(cardPanel, "" + (currentCard));
But when I use show
, I get a message in Eclipse that it is out of date, and I wonder if there is another way to show different cards in CardLayout when I click the buttons? Below is the code for my CardLayout class. Suggestions are also welcome if some piece of code is bad practice. Thanks!
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); } }
source share