- 1.CardLayout布局管理器:
- 2.做一个案例:5个button按钮:控制一叠卡片:决定的最上面的卡片是谁:
- 完整代码:
- 2.效果图:
将加入容器的所有组件:看成一叠卡片
所有组件:只有最上面才能看见
卡片:有顺序关系,最上局,第二层,等等
cardLayout.previous(p1)//返回卡片的前一张
cardLayout.next(p1);//
cardLayout.first(p1);//
cardLayout.last(p1);//
cardLayout.show(p1,“第三张”);//返回卡片指定一张
CardLayout cardLayout=new CardLayout();//创建CardLayout对象:布局管理器
2.做一个案例:5个button按钮:控制一叠卡片:决定的最上面的卡片是谁:原理:
创建一个容器:放5个组件,
这个容器:设置为:CardLayout布局管理
再添加内容:
String[] name={"第一张","第二张","第三张","第四张","第五张"}; for(int i=0;i<5;i++) { p1.add(name[i],new Button(name[i]));//可以写成 p1.add(new Button(name[i]));//先添加的为最上面,后面按顺序往下层;最上面;第二层;等等 } sc.add(p1);
再创建一个容器:放五个按钮
Panel p2=new Panel(); Button b1=new Button("上一张"); Button b2=new Button("下一张"); Button b3=new Button("第一张"); Button b4=new Button("最后一张"); Button b5=new Button("第三张");
然后:添加监听事件:
ActionListener listener=new ActionListener() {}//创建监听对象
ActionListener listener=new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String actioncommand=e.getActionCommand();// 获取按钮上的文字 switch (actioncommand){ case "上一张": //如果按钮文字是"上一张":执行cardLayout.previous(p1); //cardLayout.previous(p1);返回卡片的前一张, 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);完整代码:
import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class rtjhy { public static void main(String[] args) { frame sc=new frame("chokolo"); sc.setBounds(100,100,300,300); Panel p1=new Panel(); CardLayout cardLayout=new CardLayout(); p1.setLayout(cardLayout);//设置布局管理器 String[] name={"第一张","第二张","第三张","第四张","第五张"}; for(int i=0;i<5;i++) { p1.add(name[i],new Button(name[i]));// } sc.add(p1); Panel p2=new Panel(); Button b1=new Button("上一张"); Button b2=new Button("下一张"); Button b3=new Button("第一张"); Button b4=new Button("最后一张"); Button b5=new Button("第三张"); 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.add(b1); p2.add(b2); p2.add(b3); p2.add(b4); p2.add(b5); sc.add(p2,BorderLayout.SOUTH); //注意:位置南边,如果:sc.add(p2);覆盖了p1的位置,p1就看不了了 sc.setVisible(true); } }2.效果图:
点击下一张按钮
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)