swing快速入门(八)

2023-12-14 10:37:04

注释很详细,直接上代码

上一篇

新增内容

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

运行效果:(放大点)

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

文章来源:https://blog.csdn.net/m0_73756108/article/details/134936562
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。