




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
任务22 主程序设计,教学目标 任务,教学目标,掌握容器概念 掌握框架的使用方法 了解菜单条、菜单、菜单项的基本概念 理解菜单条、菜单、菜单项的关系 掌握菜单组件的使用方法和事件处理机制,任务,Swing框架(JFame)的基本概念 Swing框架(JFame)的使用 Swing菜单简介 菜单的设计与实现,1.Swing框架(JFrame) Jframe简介,Java中的顶层窗口(即那些没有包含在其他窗口中的窗口)被称作框架。 框架是一种容器,允许你把其他组件添加到它里面,把它们组织起来,呈现给用户。 前面的课程介绍了Swing中一些常用控件,这些控件并不能孤立存在,而是必须加到像JFrame这样的“容器”中。在Java中,用来存放控件的组件被称之为容器。,1.Swing框架(JFrame) Jframe的构造方法,JFrame() 创建无标题窗口。 JFrame(String s) 创建标题名字是字符串s的窗口。,1.Swing框架(JFrame) JFrame的常用方法,setTitle(String title) 设置JFrame标题文本 get/ setSize():获取/设置JFrame的大小。 add(Object a):将组件添加到JFrame中。 dispose()关闭JFrame并回收用于创建窗口的任何资源。 setVisible(boolean b)设置JFrame的可见性。 setLocation(x,y) 设置JFrame在屏幕的位置。,1.Swing框架(JFrame) JFrame的常用属性,title: String型,设置JFrame标题中的文本 alwayOnTop:布尔型,设置JFrame是否位于最顶部。 resizable:布尔型,设置是否可以改变JFrame大小。,1.Swing框架(JFrame) JFrame的事件与事件处理,事件类型是: WindowEvent 接口名字: WindowEventListener 窗口事件总共有7种: windowActivated(); 窗口被激活。 windowDeactivated(); 窗口失活(其他窗口激活)。 windowClosed(); 窗口已被关闭。 windowClosing(); 窗口正被关闭。 windowOpened(); 窗口已被打开。 windowIconified(); 窗口被最小化为图标。 windowDeiconified(); 窗口由图标恢复。,Swing框架(JFame)的使用 窗口事件实例,窗口事件发生顺序: 1.窗口打开 windowActivated()被调用 windowOpened()被调用 2.窗口关闭 windowClosing()被调用 windowDeactivated()被调用 windowClosed()被调用 3.窗口最小化 windowIconified()被调用 windowDeactivated()被调用 4.窗口恢复 windowDeiconified()被调用 windowActivated()被调用,实例 WindowEventDemo.java,Swing框架(JFame)的使用 适配器实例,在例WindowEventDemo.java里的7个窗口事件并不总是全部使用,有时候只使用其中几个事件,这时如何处理? 使用的是WindowAdapter类,不使用的事件就不需要写出来了,就可以解以上提出的问题。 适配器是一个类而不是接口,因而处理事件的类只能继承一个适配器。当该类需要处理多种事件时,通过继承适配器类的方式是不行的。但可以基于适配器类,用内嵌类(Inner Class)的方法来处理这种情况。,一个使用WindowAdapter类的窗口事件例子,源程序( WindowAdapterDemo.java) 请注意: 本例使用的是WindowAdapter类,没有使用的3个窗口事件就不需要写出来。这里使用的是extends关键字, class WinLis extends WindowAdapter(继承WindowAdapter类), WinLis 类是一个内部类。,2.Swing框架(JFame)的使用给框架定位-显示在屏幕中央,调用Toolkit类的静态方法getDefaultToolkit()得到一个Toolkit对象。 如:Toolkit kit = Toolkit.getDefaultToolkit(); 然后调用getScreenSize()方法把屏幕尺寸作为一个Dimension对象返回。 如: Dimension screenSize = kit.getScreenSize(); Dimension对象screenSize使用公有的实例变量with和height存储高和宽。 如:int screenHeight = screenSize.height; int screenWidth = screenSize.width; 显示在屏幕中央 setSize(screenWidth / 2, screenHeight / 2); setLocation(screenWidth / 4, screenHeight / 4);,实例 CenteredFrameTest.java,2.Swing框架(JFame)的使用 可视化实例,例22-1框架的使用。(DemoJFrame.java) 演示创建过程,一、Swing菜单简介,1、菜单的组成 1)菜单条(JMenuBar) 2)菜单(JMenu) 3)菜单项,一、Swing菜单简介,2、菜单条(JMenuBar) 用来创建一个水平菜单栏,它是菜单和菜单项的容器。 3、菜单(JMenu) 可以连接到JMenuBar或者其他JMenu对象上的菜单。 1)顶层菜单:直接添加到JMenuBar上的菜单。 2)子菜单:连接到其他JMenu对象上的菜单。,一、Swing菜单简介,4、菜单项 Swing菜单中最小的单位。根据用途不同,菜单项可以分成: 1)一般菜单项( JMenuItem ):用来执行某项操作或激活对话框。 2)单选菜单项(JRadioButtonMenuItem):实现单选按钮功能的菜单项。 3)复选菜单项(JCheckBoxMenuItem):实现复选按钮功能的菜单项。,一、Swing菜单简介,5、菜单各个组成成分关系示意图,JMenuBar,顶层菜单1(JMenu) ,顶层菜单2(JMenu) ,顶层菜单n(JMenu),菜单项1,菜单项n,菜单项1,子菜单(JMenu) ,菜单项1,菜单项n,菜单项n,1、具体要求 1)通过对【编辑(E)】菜单中菜单项的操作,可以分别实现对班级和姓名标签字体颜色的设置。 2)通过对【文件(F)】菜单中菜单项的操作,可以分别实现还原班级标签和姓名标签字体颜色为黑色,以及退出程序的功能。 3)通过对【显示(S)】菜单中菜单项的操作,可以分别实现是否显示班级或姓名标签的功能。,二、菜单的设计与实现 【例23.1】在NetBeans中使用菜单和JLabel组件设计一个可以改变班级和姓名标签字体颜色的图形用户界面程序。,JFrmMenu.java,2、实现步骤,1)准备阶段和界面设计Part1 见实验指导书(一 )准备工作 和(二)界面设计1、2 、3 ) 内容:添加JLabel、JMenuBar和JButtonGroup组件,设计【文件】菜单外观(mnemonic属性 ),2)界面设计Part2:(见实验指导书(二)界面设计4 ) 内容:设计【编辑】菜单外观(buttonGroup属性 、accelerator属性 ),3)界面设计Part3(见实验指导书(二)界面设计5) 内容: 设计【显示】菜单外观( selected属性 ),4)添加事件处理代码(见实验指导书(三)添加事件处理代码) 内容;实现【文件】菜单、【编辑】菜单和【显示】菜单功能(引用java.lang.Color类 ,actionPerformed和itemStateChanged方法),菜单外观设计,2、设计和实现菜单功能的步骤。,1、添加JMenuBar到窗体上。 2、根据需要添加若干个顶层菜单(JMenu)到JMenuBar上。 3、设置JMenu的相关属性。 4、根据需要添加若干个菜单项或子菜单到JMenu上。 5、设置菜单项或子菜单相关属性。 6、为菜单项设置快捷键或加速器。 7、为菜单项设置图标。 8、添加菜单项的事件处理代码。,作用:菜单项中带有下划线的字母,可以通过Alt+该字母的方式选择该菜单项。 设置方法:在菜单项的mnemonic属性 中设置。,作用:可在不打开菜单的情况下选择设置了加速器的菜单项。 设置方法:在菜单项的accelerator属性中设置。,3、一般菜单项和单选菜单项的鼠标单击事件处理方法是actionPerformed(),复选菜单项的事件处理方法是itemStateChange()。,例22-2 主程序界面设计,创建如图所示的窗口 在窗口上添加一个菜单栏(jMenuBar) 在菜单栏中添加三个菜单 在三个菜单中分别添加实现相应功能的菜单项 菜单项的相应事件处理在后续任务中讲解,作业,实现窗口显示在屏幕中央。 setVisible()方法的作用是设置组件是否可见,在窗口上添加一个复
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 花期控制新方法-洞察及研究
- 环境影响评估方法-第5篇-洞察及研究
- 微纳复合粉体合成-洞察及研究
- 蛋白质结构预测-第6篇-洞察及研究
- 干扰素治疗实验-洞察及研究
- 故障注入测试设计-洞察及研究
- 如何在新媒体平台上寻找潜在客户
- 化学品质量控制全流程规定
- 北方采暖地区既有建筑节能改造项目碳减排量化方法:精准核算与实践探索
- 北京城市社区图书馆服务的困境与突破:问题剖析与对策构建
- 汽车驾驶员(技师)考试试题及答案
- 2024年东台市城市建设投资发展集团有限公司招聘笔试冲刺题(带答案解析)
- 《2024年北京市医疗服务收费目录》
- 2024年全国养老护理职业技能大赛理论备考试题库(附答案)
- 经济数学(高职)全套教学课件
- 新疆地方史课件
- 防止厂家与客户直接联系协议书
- 硫铁矿的化学性质和利用技术
- 气管切开后气道湿化的护理
- 防震减灾科普知识(图文)课件
- 消防设施正确使用与操作指南
评论
0/150
提交评论