




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
练习10 卡片布局管理器本例知识点一句话讲解新学知识使用CardLayout类实现布局管理器的创建使用Button类制作按钮已学知识使用Color类设置颜色使用Panel类创建面板一、练习具体要求本例制作卡片布局管理器,运行效果如图10-1所示。执行本例实例后,将出现一个卡片布局管理器的界面,点击相应的按钮可以找到想要看到的卡片。本实例的知识点有:Panel类,CardLayout类和Button类的应用。二、程序及注释(1)编程思路:本例因为要制作卡片布局管理器,所以首先要构造框架窗体。先通过函数this.setLayout(new BorderLayout()设置Frame的布局管理器为BorderLayout;再两次实例化Panel类得到两个对象pnlCommandArea和pnlDisplayArea;然后通过函数this.add( pnlCommandArea, BorderLayout.NORTH)和函数this.add( pnlDisplayArea, BorderLayout.CENTER) 将两个Panel对象分别加入到布局管理器中。然后,因为要制作显示功能区域,所以先通过函数pnlDisplayArea.setLayout(cardlayout1)将显示功能区域Panel的布局管理器设置为CardLayout;再通过函数addActionListener(new ActionListener()为四个功能按钮设置事件监听器;最后通过函数pnlCommandArea.add( ) 把四个功能按钮加入到Panel。最后,因为要处理按钮事件,所以首先在处理按钮事件的函数processAction(ActionEvent e)里,先通过函数(Button)e.getSource()获取事件源,该函数返回一个Button类的对象btnEvent;再通过函数btnEvent.equals()就可以判断用户选择是哪个按钮。 (2) 程序实现及注释:/CardLayoutDemo.javaimport java.awt.*;import java.awt.event.*;public class CardLayoutDemo extends Frame/包含四个功能按钮的Panel的定义和创建Panel pnlCommandArea=new Panel();/显示功能Panel的定义和创建Panel pnlDisplayArea=new Panel();/CardLayout布局管理器的创建CardLayout cardlayout1=new CardLayout();/四个功能按钮的定义和创建Button btnFirst=new Button(第一个);Button btnPrevious=new Button(前一个);Button btnNext=new Button(后一个);Button btnLast=new Button(最后一个);/框架窗体的构造方法public CardLayoutDemo()super(卡片布局管理器);/四个功能按钮的颜色设置btnFirst.setBackground(Color.white);btnPrevious.setBackground(Color.white);btnNext.setBackground(Color.white);btnLast.setBackground(Color.white);/设置Frame的布局管理器为BorderLayoutthis.setLayout(new BorderLayout();/把两个Panel加入到布局管理器中this.add( pnlCommandArea, BorderLayout.NORTH);this.add( pnlDisplayArea, BorderLayout.CENTER);/把显示功能区域Panel的布局管理器设置为CardLayoutpnlDisplayArea.setLayout(cardlayout1);/创建第一个显示PanelPanel pnlFirst=new Panel();pnlFirst.setBackground(Color.yellow);pnlFirst.setForeground(Color.blue);pnlDisplayArea.add(first,pnlFirst);pnlFirst.add(new Label(这是第一张卡片) );/创建第二个显示PanelPanel pnlSecond=new Panel();pnlSecond.setBackground(Color.pink);pnlSecond.setForeground(Color.blue);pnlDisplayArea.add(second,pnlSecond);pnlSecond.add(new Label(这是第二张卡片) );/创建第三个显示PanelPanel pnlThird=new Panel();pnlThird.setBackground(Color.orange);pnlThird.setForeground(Color.blue);pnlDisplayArea.add(third,pnlThird);pnlThird.add(new Label(这是第三张卡片) );/创建第四个显示PanelPanel pnlFourth=new Panel();pnlFourth.setBackground(Color.green);pnlFourth.setForeground(Color.blue);pnlDisplayArea.add(fourth,pnlFourth);pnlFourth.add(new Label(这是第四张卡片) );/为四个功能按钮设置事件监听器btnFirst.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e) processAction(e); );btnPrevious.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e) processAction(e); );btnNext.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e) processAction(e); );btnLast.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e) processAction(e); );/把四个功能按钮加入到PanelpnlCommandArea.add( btnFirst );pnlCommandArea.add( btnPrevious );pnlCommandArea.add( btnNext );pnlCommandArea.add( btnLast );/程序的入口方法public static void main( String args )/创建框架窗体的实例CardLayoutDemo frmCardLayout = new CardLayoutDemo();/设置框架窗体的事件监听(关闭窗体事件)frmCardLayout.addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)/正常退出Java虚拟机System.exit(0););/显示框架窗体frmCardLayout.pack();frmCardLayout.show();/设置框架窗体的大小为300300public Dimension getPreferredSize()return new Dimension(300,300);/处理按钮的事件private void processAction(ActionEvent e)/获取事件源(用户选择是哪个按钮)Button btnEvent=(Button)e.getSource();if( btnEvent.equals(btnFirst)cardlayout1.first( pnlDisplayArea );else if( btnEvent.equals(btnLast)cardlayout1.last( pnlDisplayArea );else if( btnEvent.equals(btnPrevious)cardlayout1.previous( pnlDisplayArea );else if( btnEvent.equals(btnNext)cardlayout1.next( pnlDisplayArea );三、练习效果(如图10-1所示)本实例代码编写完毕,存盘为:C: j2sdk1.4.0javaprograms CardLayoutDemo.java。打开计算
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025山西阳泉平定县从社区专职网格员中选聘社区专职工作人员考试参考题库附答案解析
- 2025云南玉溪市江川区医共体招聘编制外人员9人笔试备考题库及答案解析
- 通信行业网络优化与故障排除方案
- 硕士毕业论文进度安排
- 音乐专业毕业论文设计书
- 2025上海复旦大学计算与智能创新学院招聘专任高级工程师1名考试模拟试题及答案解析
- 《化学方程式解析及实验操作指南》
- 幼管专业毕业论文
- 风电场通讯与控制系统建设方案
- 毕业论文新颖性
- 2023年版下肢动脉硬化闭塞症诊治指南
- 决奈达隆在心房颤动治疗中的应用培训课件
- 华为IPD流程管理全部课件
- 涂料行业企业风险分级管控体系实施指南+生产安全事故隐患排查治理体系实施指南
- 2021年唐山迁安市教师进城考试笔试试题及答案解析
- 2020进口关税税率表
- 三菱变频器d700说明书
- 涉外导游英语口语实训教程整套课件完整版PPT教学教程最全电子讲义教案(最新)
- 报刊分发工作总结
- 工伤知识培训(工伤待遇篇)课件
- 交通运输安全管理整套教学课件
评论
0/150
提交评论