已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java语言程序设计,云南财贸学院统计与信息学院,第八章窗口与菜单,教学目的与要求本章所介绍的内容,是编程中常用到的一些控件和容器,这些内容将在后续课程中经常用到,因此要求学生要熟练掌握与运用。通过本章的学习,使学生能熟练地掌握窗口Frame类及主要方法;窗口适配器的使用。熟练地掌握菜单Menu、MenuBar、MenuItem类及主要方法;这三种菜单元素的关系;如何向窗口中添加菜单;菜单设计技巧;菜单上事件的响应过程等。能利用窗口、菜单混合进行有关的应用编程。教学重点与难点窗口Frame类及主要方法、窗口适配器的使用、菜,单设计中涉及的Menu、MenuBar、MenuItem类及主要方法、菜单事件的响应是本章的重点。窗口的操作、窗口适配器的使用、菜单的设计是本章的难点。教学方法与手段利用Windows及常用软件中应用窗口、菜单、剪贴板的实例介绍它们在软件编程中的重要作用。对于窗口适配器要讲清使用它的目的。讲清MenuBar要安装在窗口上,Menu要安装在MenuBar上,MenuItem要安装在Menu上。因菜单上事件的处理与前面介绍的ActionEvent事件相同,所以可以简介。对于剪贴板要通过实例讲述它的设计与使用。利用多媒体投影进行直观演示。理论讲授与上机实验相结合。,第一节窗口,一、窗口Frame类及其常用方法Frame类是Container类的间接子类。当需要一个窗口时,可使用Frame或其子类创建一个对象。窗口也是一个容器,可以向窗口添加组件。需要注意的是,窗口默认地被系统添加到显示器屏幕上,因此窗口不能和其他窗白嵌套,即不能将一个窗口添加到另一个窗口中。Frame有下列常用方法:(1)Frame()该构造方法可以创建一个无标题的窗口,窗口的默认布局为BorderLayout布局。(2)Frame(Strings)该构造方法可以创建一个标题为s的窗口,窗口的默认布局为BorderLayout布局。,(3)publicvoidsetBounds(inta,intb,intwidth,intheight)窗口调用该方法可以设置出现在屏幕上时的初始位置是(a,b),即距屏幕左面a个像素,距屏幕上方b个像素;窗口的宽是width,高是height。(4)publicvoidsetSize(intwidth,intheight)设置窗口的大小,窗口在屏幕出现是默认位置是(0,0)。(5)publicvoidsetVisible(booleanb)设置窗口是可见还是不可见,窗口默认是不可见的。(6)setTitle(Strings)设置窗口的标题。(7)publicvoidsetResizable(booleanb)设置窗口是否可调整大小,窗口默认是可调整大小的。(8)StringgetTitle()获取窗口的标题。(9)booleanisResizable()获取窗口是否可调整大小的信息,当窗口可调整大小,该方法返回true,否则返回false。,(10)publicvoiddispose()窗口调用该方法可以撤消当前窗口,并释放当前窗口所使用的资源。(11)publicvoidvalidate()窗口调用该方法可以确保当前窗口中添加的组件能显示出来。窗口初始出现时有可能看不到窗口中的组件,当用户调整窗口大小时才能看到这些组件。如果窗口调用了该方法就不会发生这种情况。另外,当窗口调用方法setSize或setBounds调整大小后,都应调用方法validate,以确保当前窗口中添加的组件能显示出来。二、例题选讲例1、窗口设计实例演示”窗口设计实例applet.java”通过本例应掌握的知识点是:一般情况下,要先创建Frame类的一个子类,在其构造方法中完成窗口的各种设置,而在另外一个类中创建该子类的一个,实例,这个实例就是一个窗口。例2、窗口的属性设置演示”15_01application.java”通过本例应掌握的知识点是:窗口是个容器,如何向窗口中添加其它组件;窗口属性的设置;可以用非窗口事件来处理窗口(如设置属性、撤消窗口)。,第二节窗口与屏幕,一、设置窗口与屏幕相同大小的方法有时希望窗口与屏幕同样大小,即窗口充满屏幕,如何获得屏幕的大小呢?Toolkit类就提供了这样的功能。Toolkit类是一个抽象类,不能用构造方法直接创建这样对象,但Java运行环境提供了一个Toolkit对象,任何一个组件调用getToolkit()方法可以返回这个对象的引用。Tollkit类中有一个方法:DimensiongetScreenSize();可以返回一个Dimesion对象,这个对象中有名字是width、height的int型属性,其中width的值就是屏幕的宽,height的值就是屏幕的高。,二、实例选讲在下面的例子中,通过选择框事件将窗口的大小设置为屏幕的大小。例2、窗口的大小设置为屏幕大小演示”15_02application.java”通过本例应掌握的知识点是:窗口可以自定义其大小,也可以设置成与屏幕同样大小(这在各种信息系统中经常看到)。要注意Tollkit类中的方法:getScreenSize();可以返回一个Dimesion对象,这个对象中有名字是width、height的int型属性,其中width的值就是屏幕的宽,height的值就是屏幕的高。,第三节窗口事件,一、窗口事件处理过程及常用方法Frame是Window的子类,凡是Window子类创建的对象都可以引发WindowEvent类型事件,即窗口事件。而处理WindowEvent事件的接口是WindowListener。当一个Frame窗口被激活、撤消激活、打开、关闭、图标化或撤消图标化时,就引发窗口事件,即WindowEvent创建一个窗口事件对象。WindowEvent创建的事件对象调用getWindow()方法可以获取引发窗口事件的窗口。窗口使用addWindowListener方法获得监视器,创建监视器对象的类必须实现WindowListener接口,该接口中有7个不同的方法:(1)publicvoidwindowActivated(WindowEvente)当窗口从非激活状态到激活时,窗口的监视器调用该方,法。(2)publicvoidwindowDeactivated(WindowEvente)当窗口从激活状态到非激活状态时,窗口的监视器调用该方法。(3)publicvoidwindowClosing(WindowEvente)当窗口正在被关闭时,窗口的监视器调用该方法。(4)publicvoidwindowClosed(WindowEvente)当窗口关闭时,窗口的监视器调用该方法。(5)publicvoidwindowlconified(WindowEvente)当窗口图标化时,窗口的监视器调用该方法。(6)publicvoidwindowDeiconified(WindowEvente)当窗口撒消图标化时,窗口的监视器调用该方法。(7)publicvoidwindowOpened(WindowEvente)当窗口打开时,窗口的监视器调用该方法。,注:当单击窗口上的关闭图标时,监视器首先调用windowClosing方法,如果在该方法中使用System.exit(0);退出程序的运行,那么监视器就没有机会再调用windowClosed方法。当单击窗口的图标化按钮时,监视器调用windowlconified方法后,还将调用windowDeactivated方法。当撤消窗口图标化时,监视器调用windowDeiconified方法后还会调用windowActivated方法。二、实例选讲下面的例子就是处理窗口事件,在窗口的文本区中记录引发的事件。,例1、窗口事件的处理演示”15_05application.java”通过本例应掌握的知识点是:窗口事件的处理过程,包括事件的接口、事件的监听及事件的处理方法。,第四节窗口适配器,一、窗口适配器的作用为什么要使用窗口适配器?它的作用是什么?我们知道,当一个类实现一个接口时,即使不准备处理某个方法,也必须给出接口中所有方法的实现。而适配器可以代替接口来处理事件,当Java提供处理事件的接口中多于一个方法时,Java相应地就提供一个适配器类,比如WindowAdapter类。适配器已经实现了相应的接口,例如WindowAdapter实现了WindowListener接口。因此,如果要实现窗口的某一功能,可以使用WindowAdapter的子类创建的对象做监视器,在子类中重写所需要的接口方法即可。二、实例选讲在下面的例子156中,只处理窗口关闭事件和,激活事件,我们使用适配器做监视器,只需重写windowColsing方法和windowActivated方法既可。二、实例选讲例1、窗口适配器的应用演示”15_06application.java”通过本例应掌握的知识点是:窗口适配器可以代替接口来处理事件。适配器已实了接口,只需重写所需要的方法,完成自已想要的功能。本例的另一个特点是创建了窗口适配器的子类,并对另一窗口类进行事件处理。例2、直接在窗口类中使用适配器演示”15_07application.java”通过本例应掌握的知识点是:用本例与上例进行对比,本例已不用再创建一个适配器的子类,而是直接在窗口的子类中应用适配器,这是编程中较常用的一种方式。,例3、小程序中使用窗口及适配器演示”15_08applet.java”通过本例应掌握的知识点是:小程序中如何使用窗口及窗口适配器。创建窗口、设置窗口的属性、设置窗口适配器的工作通常在init()方法中完成。,窗口程序框架,class窗口类名extendsFrame接口其它类对象声明,成员变量声明构造方法创建其它类的对象添加其它类的对象添加事件的监听属性设置适配器其它方法(主要是事件处理方法),第五节菜单,一、菜单的有关概念及常用方法菜单几乎是所有的应用程序都采用的一种组件。利用菜单,用户不必记住各种命令,而只需用鼠标选择即可,极大地方便用户的操作。为了学好菜单的设计,我们首先介绍几个与菜单有关的概念:菜单条、菜单、菜单项。下图是一个常见的窗口及菜单的实例图。通过该图了解有关菜单的有关概念、菜单的设计。,菜单条,菜单,菜单项,这里要注意的是:菜单项放在菜单里,菜单放在菜单条里,菜单条放在窗口中。而最终能被执行的只有菜单项。1、菜单条(Menubar)java.awt包中的Menubar类是负责创建菜单条的,即Menubar的一个实例就是一个菜单条。其构造方法是MenuBar()。Frame类有一个将菜单条放置到窗口中的方法:setMenuBar(MenuBarbar);该方法能将菜单条加到窗口的顶端,需要注意的是,只能向窗口添加一个菜单条。2、菜单(Menu)java.awt包中的Menu类是负责创建菜单的,即Menu的一个实例就是个菜单。Menu类的主要方法有以下几种:Menu()建立一个空标题的菜单。,Menu(Strings)建立一个指定标题菜单,标题由参数s确定。publicvoidadd(Menultemitem)向菜单增加由参数item指定的菜单选项对象。publicvoidadd(Strings)向菜单增加指定标题为s的选项。publicMenultemgetItem(intn)得到指定索引处的菜单选项。publicintgetItemCount()得到菜单选项数目。publicvoidinsert(Menultemitem,intn)在菜单的指定位置插入菜单选项。publicvoidinsert(Strings,intn)在菜单指定位置插入菜单选项。publicvoidremove(intn)删除菜单指定位置的菜单选项。,publicvoidremoveAll()删除菜单的所有选项。3、菜单项(Menultem)java.awt包的Munultem是负责创建菜单项的,即Menultem的一个实例就是一个菜单项。菜单项将被放在菜单里。Menultem类的主要方法有以下几种:Menultem()构造无标题菜单项。Menultem(Strings)构造有标题的菜单项。publicvoidsetEnabled(booleanb)设置当前菜单项是否可被选择。publicStringgetLabel()得到菜单选项的名字。publicvoidaddActionListener(ActionListener)向菜单项增加监视器,从菜单项接受行动事件(单击某个菜单项)。4、菜单项上的ActionEvent事件单击某个菜单项可以发生ActionEvent事件。,二、实例选讲例1、菜单的设计演示”菜单的设计applet.java”通过本例应掌握的知识点是:菜单设计的全过程:向菜单中添加菜单项向菜单条中添加菜单将菜单条安装到窗口。例2、处理菜单上发生的事件演示”15_03application.java”通过本例应掌握的知识点是:菜单项上的事件是ActionEvebnt事件,处理过程与前面讲过的相同。本例中分别用一个面板来计算圆的面积,用另一个面板计算三角形的面积,在Frame类的子类窗口中设计了菜单,用菜单控制打开哪个面板进行相应的面积计算。,第五节有关菜单的几个技巧,一、有关菜单技巧的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人力资源实训总结
- 药剂科药物溶媒选择原则
- 2025年教师资格之小学教育教学知识与能力押题练习试卷A卷附答案
- 2025西安市购房合同
- 2025年农村自建房屋购买合同协议书
- 2025年智能POS终端销售合同样本
- 2025房产交易的合同范本
- 2025年合同在线上购买
- 幼儿园暑假培训内容
- 放射影像诊断技术分享
- 共享单车车体管理办法
- 金螳螂培训-精装修工程工艺标准要点图解183P
- 企业内物流培训课件
- 低压电工证考试题(附答案)
- 《安宁疗护》高职护理专业全套教学课件
- 医疗过错鉴定标准-洞察及研究
- 神经符号融合推理机制-洞察阐释
- 电气火灾培训课件
- 福建省春季高考2024数学试卷
- 数控技术课件模板
- 2025年海洋知识竞赛题库及答案
评论
0/150
提交评论