CardLayout 例

import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

class MyPanel extends JPanel {
    MyPanel(int n) {
        add(new JLabel(" "+n+" "));
        
    }
}
class MainFrame extends JFrame implements ActionListener{
    JPanel center;
    CardLayout card = new CardLayout();
    MainFrame() {
        setTitle("Test Cardslayout");
        setSize(800,600);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        center = new JPanel();
        center.setLayout(card);
        for(int i=0;i<10;i++) {
            center.add(""+i,new MyPanel(i));
        }
        
        add(center,BorderLayout.CENTER);
        
        JPanel south = new JPanel();
        JButton button1 = new JButton("First");
        JButton button2 = new JButton("Next");
        JButton button3 = new JButton("Pri");
        JButton button4 = new JButton("Last");
        button1.addActionListener(this);
        button2.addActionListener(this);
        button3.addActionListener(this);
        button4.addActionListener(this);
        south.add(button1);
        south.add(button2);
        south.add(button3);
        south.add(button4);
        
        add(south,BorderLayout.SOUTH);
        pack();
        
        
        
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        if (e.getActionCommand().equals("First")) card.first(center);
        else if (e.getActionCommand().equals("Next")) card.next(center);
        else if (e.getActionCommand().equals("Pri")) card.previous(center);
        else if (e.getActionCommand().equals("Last")) card.last(center);

        
    }
}
public class CardLayoutDemo {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        new MainFrame().setVisible(true);
    }

}
原文地址:https://www.cnblogs.com/qqjue/p/2616808.html