注释很详细,直接上代码
上一篇
新增内容
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);
    }
}
运行效果:(放大点)

 下一篇

















