Se utiliza para colocar diferentes componentes en una misma zona, pero sólo una zona por vez puede ser vista.  Este layout provee varios métodos para navegar por sobre todas las zonas.
card layout

import java.awt.BorderLayout;
import javax.swing.JPanel;
import java.awt.CardLayout;
import javax.swing.JFrame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JLabel;

public class CardLayEjemplo extends JFrame {

private JPanel cardPanel;
private CardLayout cl;
private int actual = 1;

public CardLayEjemplo() {

setTitle(“Ejemplo cardLayout”);
setSize(300, 150);
cardPanel = new JPanel();

cl = new CardLayout();
cardPanel.setLayout(cl);
JLabel jl1 = new JLabel(“Card1”);
JLabel jl2 = new JLabel(“Card2”);
JLabel jl3 = new JLabel(“Card3”);
JLabel jl4 = new JLabel(“Card4”);
JPanel jpanel1 = new JPanel();
JPanel jpanel2 = new JPanel();
JPanel jpanel3 = new JPanel();
JPanel jpanel4 = new JPanel();
jpanel1.add(jl1);
jpanel2.add(jl2);
jpanel3.add(jl3);
jpanel4.add(jl4);
cardPanel.add(jpanel1, “1”);
cardPanel.add(jpanel2, “2”);
cardPanel.add(jpanel3, “3”);
cardPanel.add(jpanel4, “4”);
JPanel panel = new JPanel();
JButton firstBtn = new JButton(“Primero”);
JButton nextBtn = new JButton(“Siguiente”);
JButton previousBtn = new JButton(“Anterior”);
JButton lastBtn = new JButton(“Ultimo”);
panel.add(firstBtn);
panel.add(nextBtn);
panel.add(previousBtn);
panel.add(lastBtn);

firstBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
cl.first(cardPanel);
actual = 1;
}
});

lastBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
cl.last(cardPanel);
actual = 4;
}
});

nextBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
if (actual < 4) {
actual += 1;
cl.show(cardPanel, “” + (actual));
}
}
});

previousBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
if (actual > 1) {
actual -= 1;
cl.show(cardPanel, “” + (actual));
}
}
});

getContentPane().add(cardPanel, BorderLayout.NORTH);
getContentPane().add(buttonPanel, BorderLayout.SOUTH);
}
public static void main(String[] args) {
CardLayEjemplo cl = new CardLayEjemplo();
cl.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
cl.setVisible(true);
}
}