实现效果:

当点击“下一首”则跳到下一首:

当点击“上一首”则跳到上一首:

代码实现:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
//卡片布局管理器
public class CardLayoutDemo {
JFrame frame = new JFrame("卡片布局管理器");
CardLayout card = new CardLayout();
JPanel pcenter = new JPanel();
public void init(){
JPanel pnorth = new JPanel();
JPanel p1 = new JPanel();
JPanel p2 = new JPanel();
JPanel p3 = new JPanel();
JLabel lb1 = new JLabel();
JLabel lb2 = new JLabel();
JLabel lb3 = new JLabel();
lb1.setText("<html><h3>第一首</h3>床前明月光,<br>疑是地上霜。<br>举头望明月,<br>低头思故乡。</html>");
p1.add(lb1);
lb2.setText("<html><h3>第二首</h3>白日依山尽,<br>黄河入海流。<br>欲穷千里目,<br>更上一层楼。</html>");
p2.add(lb2);
lb3.setText("<html><h3>第三首</h3>千山鸟飞绝,<br>万径人踪灭。<br>孤舟蓑笠翁,<br>独钓寒江雪。</html>");
p3.add(lb3);
JButton but1 = new JButton("上一首");
JButton but2 = new JButton("下一首");
pnorth.setLayout(new FlowLayout());
pnorth.add(but1);
pnorth.add(but2);
pnorth.setBackground(Color.red);
pcenter.add(p1,"p1");
pcenter.add(p2,"p2");
pcenter.add(p3,"p3");
pcenter.setLayout(card);//将卡片布局管理器添加到容器中
but1.addActionListener(new ActionListener() {//上一首
@Override
public void actionPerformed(ActionEvent e) {
card.previous(pcenter);//转上一首
}
});
but2.addActionListener(new ActionListener() {//下一首
@Override
public void actionPerformed(ActionEvent e) {
card.next(pcenter);//转下一首
}
});
frame.add(pnorth,BorderLayout.NORTH);//将按钮组放在北部
frame.add(pcenter,BorderLayout.CENTER);//将古诗放在中部
frame.setSize(400,250);
frame.setLocation(700,250);
frame.setResizable(false);//固定窗口大小
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new CardLayoutDemo().init();
}
}