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