package com.one.layout; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class GridLayoutDemo1 { public static void main(String[] args) { Frame frame = new Frame("这是测试CardLayout"); //创建一个Panel,用来储存多张卡片 Panel p1 = new Panel(); // 创建CardLayout对象,并把该对象设置给之前创建的容器 CardLayout cardLayout = new CardLayout(); p1.setLayout(cardLayout); //往panel中储存多个组件 String[] names = {"第一张", "第二张", "第三张", "第四张", "第五张"}; for (int i = 0; i < names.length; i++) { p1.add(names[i], new JButton(names[i])); } // 把panel 放在frame中间区域 frame.add(p1); // 创建另外一个panel p2,用来储存多个按钮组件 Panel p2 = new Panel(); //创建5个按钮组件 JButton b1 = new JButton("上一张"); JButton b2 = new JButton("下一张"); JButton b3 = new JButton("第一张"); JButton b4 = new JButton("最后一张"); JButton b5 = new JButton("第三张"); //创建一个事件监听器,监听按钮的点击动作 ActionListener listener = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String actionCommand = e.getActionCommand();//这个字符串其实是按钮上的文字 switch (actionCommand) { case "上一张": cardLayout.previous(p1); break; case "下一张": cardLayout.next(p1); break; case "第一张": cardLayout.first(p1); break; case "最后一张": cardLayout.last(p1); break; case "第三张": cardLayout.show(p1, "第三张"); break; } } }; //把当前这个的时间监听器和多核按钮绑定在一起 b1.addActionListener(listener); b2.addActionListener(listener); b3.addActionListener(listener); b4.addActionListener(listener); b5.addActionListener(listener); //把按钮添加到容器p2中 p2.add(b1); p2.add(b2); p2.add(b3); p2.add(b4); p2.add(b5); //把p2放在frame的南边区域 frame.add(p2,BorderLayout.SOUTH); frame.pack(); frame.setVisible(true); } }
效果图 ,我是看黑马java的视频学的