Javaのswingでラベルクリックによる画面遷移をしたいです、下記のコードのlabel1にクリックをしてpanel1からpanel2への画面遷移、panel2のlabel2をクリックし、panel3へ画面遷移、panel3のlabel3をクリックし、panel1へ画面遷移、showメソッドを使用して任意のパネルに遷移したいです。
上記のようにするにはどうしたらいいですか。
現在実行するとpanel1でラベルをクリックするとpanel3へ遷移してしまいます。
APIドキュメントを見たのですが知識不足でわかりません。

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

public class Layout2 extends JFrame implements MouseListener{
    JLabel label1;
    JLabel label2;
    JLabel label3;
    CardLayout layout;
    JPanel panel1;
    JPanel panel2;
    JPanel panel3;

    public static void main(String[] args) {
        Layout2 frame = new Layout2("タイトル");
        frame.setVisible(true);
    }
    Layout2(String title){
        setTitle("タイトル");
        setBounds(100,100,250,300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        label1 = new JLabel("クリック");
        panel1 = new JPanel();
        panel1.add(label1);
        label1.addMouseListener(this);

        panel2 = new JPanel();
        label2 =new JLabel("二枚目");
        label2.addMouseListener(this);
        panel2.add(label2);

        panel3 = new JPanel();
        label3 =new JLabel("三枚目");
        label3.addMouseListener(this);
        panel3.add(label3);


        layout = new CardLayout();

        Container contentPane = getContentPane();
        contentPane.setLayout(layout);
        contentPane.add(panel1,"panel");
        contentPane.add(panel2,"panel2");
        contentPane.add(panel3,"panel3");
    }

    @Override
    public void mouseClicked(MouseEvent e) {

        layout.show(getContentPane(),"panel2");
        layout.show(getContentPane(),"panel3");
    }

    @Override
    public void mousePressed(MouseEvent e) {
        // TODO 自動生成されたメソッド・スタブ

    }

    @Override
    public void mouseReleased(MouseEvent e) {
        // TODO 自動生成されたメソッド・スタブ

    }

    @Override
    public void mouseEntered(MouseEvent e) {
        // TODO 自動生成されたメソッド・スタブ

    }

    @Override
    public void mouseExited(MouseEvent e) {
        // TODO 自動生成されたメソッド・スタブ

    }

}