swing快速入门(八)

注释很详细,直接上代码

上一篇

新增内容

cardLayout布局管理器

事件监听器的创建与绑定

多种布局与容器的结合使用

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class swing_test_6 {
    public static void main(String[] args) {
        Frame frame=new Frame("测试cardlayout");

        //创建一个panel,用来存储多个按钮
        Panel p_1=new Panel();

        //为panel设置cardLayout布局管理器
        CardLayout cardLayout=new CardLayout();
        p_1.setLayout(cardLayout);

        //往panel中储存多个按钮(模拟图片)
        String[] names={"第一张","第二张","第三张","第四张","第五张"};
        for(int i=0;i< names.length;i++){
            //为按钮设置名字
            p_1.add(names[i],new Button(names[i]));
        }

        //把panel放入frame的中间区域(默认)
        frame.add(p_1);

        //创建另一个panel用来储存多个按钮(响应按钮)
        Panel p_2=new Panel();

        //创建五个按钮
        Button b_1=new Button("上一张");
        Button b_2=new Button("下一张");
        Button b_3=new Button("第一张");
        Button b_4=new Button("最后一张");
        Button b_5=new Button("第三张");

        //创建事件监听器
        ActionListener listener=new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                //获取按键文本
                String actioncommand=e.getActionCommand();
                switch(actioncommand){
                    case "上一张":
                        cardLayout.previous(p_1);
                        break;
                    case "下一张":
                        cardLayout.next(p_1);
                        break;
                    case "第一张":
                        cardLayout.first(p_1);
                        break;
                    case "最后一张":
                        cardLayout.last(p_1);
                        break;
                    case "第三张":
                        //按名字查询
                        cardLayout.show(p_1,"第三张");
                        break;
                }
            }
        };

        //把事件监听器绑定到五个按钮
        b_1.addActionListener(listener);
        b_2.addActionListener(listener);
        b_3.addActionListener(listener);
        b_4.addActionListener(listener);
        b_5.addActionListener(listener);

        //把按钮放入pancel中
        p_2.add(b_1);
        p_2.add(b_2);
        p_2.add(b_3);
        p_2.add(b_4);
        p_2.add(b_5);

        //把p2放到frame的南边
        frame.add(p_2,BorderLayout.SOUTH);

        frame.pack();
        frame.setVisible(true);
    }
}

运行效果:(放大点)

在这里插入图片描述
下一篇

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

代码对我眨眼睛

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

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

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

打赏作者

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

抵扣说明:

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

余额充值