版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1、教学目的要求,了解Java语言图形用户界面的结构和设计。掌握其实现的基本原理和方法,达到用图形用户界面设计程序的目的。掌握用AWT设计图形用户界面的方法,特别是组件、容器和布局管理器的概念。学习AWT事件处理模型,掌握事件源、事件、事件处理程序等概念,使程序能够响应用户的操作。最后,了解AWT组件的使用和采用的事件处理接口。通过技能培训,掌握Java语言的图形用户界面编程。第8章图形用户界面的应用,第2章,本章内容,第8.1章AWT和Swing简介,第8.2章布局管理,第8.3章事件处理模型,第8.4章通用组件的应用,第3、8.1章AWT和Swing简介,AWT(抽象窗口工具包)是一套由应
2、用编程接口提供的用于Java程序构建图形用户界面的工具。awt可以在Java小程序和应用程序中使用。其支持图形用户界面编程的功能包括:用户界面模块;事件处理模型;图形和图像工具,包括形状、颜色和字体;布局管理器,它可以使灵活的窗口布局,而不管具体窗口的大小和屏幕分辨率;数据传输类,可以通过本地平台的剪贴板进行剪切和粘贴。4,8.1 AWT和Swing简介,java.awt包包含一个完整的类集来支持图形用户界面程序设计(重量级组件),5,8.1.1组件和容器,java.awt包提供图形用户界面设计中使用的类和接口,主要类之间的关系可以从图5.1中看到。java.awt包为java程序提供了一个基
3、本的GUI设计工具。它主要包括以下三个概念:组件容器布局管理器-布局管理器,6,8.1.1组件和容器。Java图形用户界面最基本的组件是组件,它是一个可以以图形方式显示在屏幕上并可以与用户交互的对象,如按钮、标签等。组件不能独立显示,它们必须放在特定的容器中才能显示。组件是许多组件类的父类。组件类封装了组件的常用方法和属性,如图形组件对象、大小、显示位置、前景和背景颜色、边界、可见性等。因此,许多组件类继承组件类的成员方法和成员变量。相应的成员方法包括:getComponentAt(int x,Int y)get font()get forecast()get name()get size()
4、paint(graphics g)repaint()update()set visible(boolean b)set size(dimension d)set name(string name)等。8.1.1组件和容器,也是一个类,实际上是组件的一个子类,所以容器本身是一个具有组件所有属性的组件,但是它的主要功能是容纳其他组件和容器。布局管理器:每个容器都有一个布局管理器。当容器需要定位一个组件或判断其大小时,它将调用相应的布局管理器。为了使我们生成的图形用户界面具有良好的平台独立性,用Java语言提供了布局管理器来管理容器中组件的布局,而不是直接设置组件的位置和大小。8、8.1.1组件和容
5、器。在安排程序中组件的位置和大小时,应该注意两点:1容器中的布局管理器负责每个组件的大小和位置,因此在这种情况下用户不能设置组件的这些属性。布局管理器将覆盖使用设置位置()、设置大小()、设置边界()和Java语言提供的其他方法的尝试。2如果用户真的需要自己设置组件的大小或位置,他应该取消容器的布局管理器:);9,8。1 AWT和Swing,8.1.2 Swing组件及其层次关系,以及10,8.1.3组件类。在java语言中,所有图形用户界面标准组件都是Java包中根类组件类的子类,组件类的直接子类包括一个容器组件容器和八个基本组件,如按钮、标签和标签容器是所有容器组件的根类。容器组件的主要功
6、能是包含其他组件并以某种方式排列它们。同一容器中的所有组件总是同时显示和隐藏。所有容器组件都是容器类的子类,可以分为三组。(1)第一组是面板和小程序容器,它们是无边界的;(2)第二组是滚动窗格容器,它可以自动处理滚动操作;(3)第三组是窗口、框架、对话框和文件对话框容器,它们都包含框架,可以移动、放大、缩小和关闭,并具有强大的功能。组件是所有组件和容器的抽象父类。组件类封装了组件的常用方法和属性,如图形组件对象、大小、显示位置、前景和背景颜色、边界、可见性等。其中,定义了每个容器和组件可以使用的方法,常用方法见教材表8-2。11,8.2布局管理,为了实现跨平台特性并获得动态布局效果,java将
7、所有组件排列在一个容器中,由布局管理器进行管理,例如:组件的排列顺序、大小和位置、窗口移动或调整大小后组件如何变化等。相应的容器布局管理器被授权管理,不同的布局管理器使用不同的算法和策略,容器可以通过选择不同的布局管理器来决定布局。布局管理器主要包括:流程布局、边框布局、网格布局、卡片布局、网格布局。流程布局流程布局是面板和小程序的默认布局管理器。它的组件放置规则是从上到下和从左到右。如果容器足够宽,第一个组件将被添加到容器中第一行最左边的部分,随后的组件将依次添加到前一个组件的右边。如果组件不能放在当前行,它将被放在下一行的最左边。当容器的大小改变时,由FlowLayout管理的组件也将改变
8、。变化规则是组件的大小不会改变,但相对位置会改变。例如,在上图中,所有三个按钮都在同一行,但是如果窗口缩小到只放下一个按钮,第二个按钮将折叠到第二行,第三个按钮将折叠到第三行。“打开”按钮最初位于“确定”按钮的右侧,但现在位于下方,因此组件的大小不会改变,但相对位置会改变。13,8.2.1布局管理器-FlowLayout,施工方法主要如下:flowlayout (flowlayout。右,20,40);/*第一个参数表示组件的对齐方式,即组件是在这条线的中间、右边还是左边对齐;第二个参数是组件之间的水平间距;第三个参数是组件之间的垂直间距,单位是像素。*/FlowLayout(FlowLayo
9、ut。左);/左对齐、水平间距和垂直间距是默认的5像素流量布局();/默认的对齐方式是居中对齐,水平间隔和垂直间隔都是5像素的默认值。示例:框架f=新框架();f.setLayout(新的FlowLayOut();添加(新按钮(按钮1);添加(新按钮(按钮2);添加(新按钮(按钮3);14,8.2.2布局管理器-边框布局,边框布局是窗口、框架和对话框的默认布局管理器。边界布局管理器将容器分成五个区域:北、南、东、西和中心,每个区域只能放置一个组件。f.setLayout(新的边框布局();添加(北,新按钮(北);/第一个参数表示当在容器的北方区域添加一个按钮时,如果容器的大小发生变化,变化的规
10、律是组件的相对位置不变,但是大小发生变化。例如,如果集装箱变高,南北区域将不会改变,而西部、中部和东部区域将变高;如果集装箱加宽,西部和东部区域不变,北部、中部和南部区域加宽。并非所有区域都有组件。如果在周围区域(西、东、北、南)没有组件,它将由中心区域补充,但是如果在中心区域没有组件,它将保持空白:15,8.2.3布局管理器-网格布局,因此容器中的所有组件以网格形状排列,并平均占据容器的空间。框架f=新框架(网格布局);f.setLayout(新网格布局(3,2);/容器分为3行、2列和6个网格(新按钮(1);/添加到第一行的第一帧,f.add(新按钮(2);/添加到第一行的下一个框中.添加
11、(新按钮(6);/添加到第二行的第三个框中,16,8.2.4布局管理器卡片布局(CardLayout),卡片布局管理器可以帮助用户处理两个或两个以上的成员共享同一个显示空间,它将容器分成许多层,每层的显示空间占据了整个容器的大小,但是每层只能放置一个组件,当然,每层都可以使用Panel来实现复杂的用户界面。卡片布局管理器就像一张叠得整整齐齐的扑克牌,有54张牌,但你只能看到最上面的一张,每张牌相当于卡片布局管理器中的每一层。17,8.2布局管理器,容器的嵌套是在复杂的图形用户界面设计中。为了使布局更易于管理并具有简单的整体风格,包含多个组件的容器也可以作为一个组件添加到另一个容器中,然后将容器
12、添加到容器中,从而形成容器的嵌套。下面是一个容器嵌套的例子。示例:f=新框架(图形用户界面示例3);bw=新按钮(西部);bc=新按钮(工作空间区域);f.add(bw,West);(不列颠哥伦比亚,中心);p=新面板();f.add(p,北);b文件=新按钮(文件);新按钮(帮助);p . add(b文件);p . add(BH elp);f . pack();f.setVisible(真);18,8.2布局管理器,1框架是顶级窗口。框架的默认布局管理器是边框布局。2面板不能单独显示,必须添加到容器中。面板的默认布局管理器是FlowLayout。3当面板作为组件添加到容器中时,面板仍然可以有
13、自己的布局管理器。因此,Panel可以用来显示某个区域的多个组件,从而达到设计复杂用户界面的目的。4如果没有采用布局管理器设置布局(空),则必须使用设置位置(),设置大小(),设置边界()等方法手动设置组件的大小和位置。这种方法会导致对平台的依赖,因此不鼓励使用。19,8.2使用布局管理器面板,这是Java语言中最常见的容器。这是放置复选框和按钮的完美容器。从图8.1中可以看出,面板是直接从容器类继承而来的,它可以包含在另一个容器中或者网络浏览器的窗口中。当需要放置多个元素时,需要根据元素的逻辑关系进行分组,然后将它们放入面板中,这样可以简化处理。面板显示可放置其他元件的四边形。应该注意的是,
14、面板必须放在窗口或窗口的一个子类中才能显示。20,8。3事件处理,8.3.1事件和事件处理方法java.awt.event包括表示各种事件的类,主要包括以下类型的: 1。事件。java.awt.event包中以Event结尾的类属于事件类。例子有动作事件、窗口事件、鼠标事件和按键事件。2.听众.该包还定义了一些可以由事件侦听器实现的接口。每个接口定义了一个需要监听器实现的方法,这些接口决定了监听器对源事件的反应。3.适配器.适配器类(以“适配器”结尾)是一个实现了所有方法的特殊接口。适配器通常是为了方便使用。21,8。3事件处理,8.3.2事件处理机制在java事件处理过程中,主要涉及三种对象
15、:1。事件:事件,用户用Java语言对界面操作的描述以类的形式出现,例如,键盘操作对应的事件类就是KeyEvent。2.事件源:事件源,事件发生的地方,通常是每个组件,比如按钮。3.事件处理程序:事件处理程序,一个接收和处理事件对象的对象。例如,如果用户用鼠标点击按钮对象按钮,按钮就是事件源,java运行系统将生成actionEvent类的对象ActIe,描述点击事件发生时的一些信息,然后事件处理程序对象将接收java运行系统传递的事件对象ActIe,并对其进行相应的处理。22,因为不同的事件可能发生在同一个事件源上,所以java采用了一个委托模型,并且事件源可以将自身所有可能的事件授权给不同的事件处理程序进
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 论环境保护行政处罚裁量基准的法律效力:理论、实践与优化路径
- 半导体产业链上游设备材料行业驱动型发展报告(年)
- 初中八年级地理:首都北京的城市职能与可持续发展路径探究
- 2026年幼儿园后勤人员师德师风培训
- 2026年给幼儿园学生讲教师职业
- 2026年幼儿园小班教师教育小故事
- 2026年基于元学习的影像AI模型快速适应方法
- 动物医学试题及答案解析
- 初中英语演讲中情感表达策略与情感表达能力培养模式研究教学研究课题报告
- 高中历史全球史观下的课程设计课题报告教学研究课题报告
- 2026年沪教版(五四学制)(新教材)初中生物八年级下册(全册)教案附目录p121新版
- 2025年4月自考03346项目管理试题
- 在线网课学习课堂《人工智能(北理 )》单元测试考核答案
- DBS 62-014-2023 食品安全地方标准 兰州百合
- 搅拌站安全培训课件
- 2024年小学科学教师专业考试试题及答案(三套)
- ZYJ7道岔故障处理
- (正式版)SHT 1844-2024 工业用乙烯、丙烯中痕量氢气、一氧化碳、二氧化碳的测定 气相色谱-氦离子化检测法
- 销售技巧-连带销售课件
- 国家开放大学创业教育形考答案
- 3-4环境保护政策、措施与国家安全(教学课件含视频)-高中地理湘教版(2019)选择性必修三
评论
0/150
提交评论