CardLayout卡片布局管理器实现古诗之间的切换(Java)

实现效果:

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

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

 代码实现:

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();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

T何必当初

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值