版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本章学习内容n图形用户界面(GUI)设计nGUI事件处理nGUI常用组件和视觉控制nAWT绘图基本概念/术语n图形用户界面GUI(Graphical User Interface)n抽象窗口工具集AWT(Abstract Window Toolkit)相关软件包njava.awt包:提供基本GUI组件、视觉控制和绘图工具APInjava.awt.event包:提供Java GUI事件处理API组件n组件(Component)是图形用户界面的基本组成元素,凡是能够以图形化方式显示在屏幕上并能够与用户进行交互的对象均为组件,如菜单、按钮、标签、文本框、滚动条等。n组件不能独立地显示出来,必须将组件
2、放在一定的容器中才可以显示出来。nJDK的java.awt包中定义了多种GUI组件类,如Menu、Button、Label、TextField等。n抽象类java.awt.Component是除菜单相关组件之外所有Java AWT组件类的根父类,该类规定了GUI组件的基本特性,如尺寸、位置、颜色效果等,并实现了作为一个GUI部件所应具备的基本功能。容器n容器(Container)实际上是Component的子类,因此容器类对象本身也是一个组件,具有组件的所有性质,另外还具有容纳其它组件和容器的功能。n容器类对象可使用方法add()添加组件两种主要的容器类型:java.awt.Window:可自
3、由停泊的顶级窗口(比如当前ppt的窗口,可以随意移动)java.awt.Panel:可作为容器容纳其他组件,但不能独立存在,必须被添加到其他容器(如Frame)中.常见组件和容器nButton:可接收点击操作的矩形GUI组件nCanvas:用于绘图的画板nCheckbox:复选框组件nChockboxMenuItem:复选框菜单项组件nChoice:下拉式列表框,内容不可改变nComponent:抽象的组件类nContainer:抽象的容器类常见组件和容器nDialog:对话框组件,顶级窗口、带标题栏nFieldDialog:用于选择文件的平台相关对话框nFrame:基本的Java GUI窗口
4、组件nLabel:标签类nList:包含内容可变的条目的列表框组件nMenuBar:菜单栏组件nMenu:菜单组件nMenuItem:菜单项组件常见组件和容器nPanel:基本容器类,不能单独停泊nPopupMenu:弹出式菜单组件nScrollbar:滚动条组件nScrollPane:带水平及垂直滚动条的容器组件nTextComponent:TextField和TextArea的基本功能nTextField:单行文本框nTextArea:多行文本框nWindow:抽象的GUI窗口类,无布局管理器Framen继承层次java.lang.Objectjava.awt.Componentjava.
5、awt.Containerjava.awt.Windowjava.awt.FramenFrame对象的显示效果是一个可以自由停泊的顶级”窗口”,带有标题和尺寸重置角标。nFrame默认初始化为不可见的,可以调用Frame对象的setVisible(true)方法使之变为可见。n作为容器Frame还可以用add()方法包含其他组件。J01组件定位nJava组件在容器中的定位由布局管理器决定。n如要人工控制组件在容器中的定位,可以取消布局管理器,然后使用Component类的下述成员方法:nsetLocation():设定组件在容器中的位置nsetSize:设定组件在容器中的大小nsetBound
6、s:设定组件在容器中的位置和大小GUI坐标系屏幕坐标系(0,0)3040(0,0)Frame内部坐标系按钮2030PanelnPanel类的继承层次java.lang.Objectjava.awt.Componentjava.awt.Containerjava.awt.PanelnPanel提供容纳组件的空间nPanel不能独立存在,必须被添加到其他容器中。n可以采用和所在容器不同的布局管理器J02布局管理器n容器对其中所包含组件的排列方式,包括组件的位置和大小设定,被称为容器的布局(Layout)。n为使图形用户界面具有良好的平台无关性,Java语言提供了布局管理器来管理容器的布局,而不建议
7、直接设置组件在容器中的位置和尺寸。布局管理器类层次LayoutManagerLayoutManager2GridBagLayoutCardLayoutBorderLayoutGridLayoutFlowLayout布局管理器n每个容器都有一个布局管理器,当容器需要对某个组件进行定位或判断其大小尺寸时,就会调用其对应的布局管理器。布局管理器ComponentContainerPanelAppletWindowFrameDialogBorderLayoutFlowLayoutFlowLayout布局nFlowLayout是Panel容器的默认布局管理器类型。布局效果:n组件在容器中按照加入次序逐行
8、定位,行内从左到右,一行排满后换行。n不改变组件尺寸,即按照组件原始大小进行显示。n组件间的对齐方式默认为居中对齐,也可以在构造方法中设置不同的组件间距、行距、对齐方式。构造方法:npublic FlowLayout()npublic FlowLayout(int align)npublic FlowLayout(int align,int hgap,int vgap)J03BorderLayout布局nBorderLayout是Frame容器的默认布局管理器。布局效果:nBorderLayout将整个容器的布局划分成东、西、南、北、中五个区域,组件只能被添加到指定的区域。n如果不指定组件的加
9、入部位,则默认加入到Center区域。n每个区域只能加入一个组件,如加入多个,则先前加入的组件会被丢弃。n组件尺寸被强行控制,即与其所在区域的尺寸相同。构造方法:npublic BorderLayout()npublic BorderLayout(int hgap,int vgap)J04BorderLayout布局BorderLayout布局容器尺寸缩放原则:n北、南两个区域只能在水平方向缩放(宽度可以调整)n东、西两个区域只能在垂直方向缩放(高度可以调整)n中部可以在两个方向上缩放nFrame用BorderLayout作为默认布局管理器BorderLayout布局NorthCenterEa
10、stWestSouthGridLayout布局布局效果:n将容器划分成规则的矩形网格,每个单元格区域大小相等,组件被添加到每个单元中,按组件中加入顺序先从左到右填满一行后换行,行间从上到下。nGridLayout型布局的组件大小也被布局管理器强行控制,与单元格同等大小,当容器尺寸发生改变时,组件的相对位置保持不变,但大小自动调整。构造方法:npublic GridLayout(int rows,int cols)npublic GridLayout(int rows,int cols,int hgap,int vgap)J05CardLayout布局布局效果:n将多个组件在同一容器区域内交替显
11、示,相当于多张卡片摞在一起,只有最上面的卡片是可见的。nCardLayout可以按名称显示某一张卡片,或按先后顺序依此显示,也可以直接定位到第一张或最后一张卡片。主要方法:npublic void first(Container parent)npublic void last(Container parent)npublic void previous(Container parent)npublic void next(Container parent)npublic void show(Container parent,String name)J06容器的嵌套使用n利用容器嵌套可以在某个
12、原本只能包含一个组件的区域中显示多个组件。J07GUI事件处理n如果关注某个组件产生的事件,则可以在该组件上注册适当的事件处理方法,实际上注册的事件处理方法所属类型的一个对象,这个对象就是事件监听器。事件处理相关概念n事件(Event)一个事件类型的对象,用于描述发生什么事情,当用户在组件上进行操作时会触发相应的事件。比如鼠标操作会触发MouseEvent,关闭窗口操作会触发WindowEventn事件源(Event Source)能够产生事件的GUI组件对象,如按钮、文本框n事件处理方法(Event Handler)能够接收、解析、处理事件类型对象,实现与用户交互功能的方法。n事件监听器(E
13、vent Listener)调用事件处理方法的对象J08事件处理模型综述nJava GUI设计中,通过注册监听器的方式对所关注的事件源进行监控。n注册监听器时应指明该监听器监控(感兴趣)的事件种类。n当事件源发生了某种类型的事件时,只触发事先就已该种事件类型注册过的监听器。AWT事件分类 EventObjectActionEventAdjustmentEventAWTEventItemEventTextEventContainerEventFocusEventInputEventPaintEventWindowEventKeyEventMouseEventComponentEventactio
14、nCommand属性nactionCommand属性用于记录按钮/菜单类组件所激发的ActionEvent事件相关指令信息。J09多重监听器n事件源可以产生多种不同类型的事件,因而可以注册(触发)多种不同类型的监听器。n一个事件源组件上可以注册多个监听器,针对同一个事件源的同一种事件也可以注册多个监听器,一个监听器可以被注册到多个不同的事件源上。n比如可以在一个按钮上同时注册多个监听器对象,负责监控同一种事件,或是将多个按钮注册到同一个监听器对象上。J10事件适配器类n事件适配器类(Adapter)是针对大多数事件监听器接口定义的相应的实现类,适配器类实现了相应监听器接口中所有的方法,但不做任
15、何事情。npackage java.awt.event;public abstract class MouseMotionAdapter implements MouseMotionListenerpublic void mouseDragged(MouseEvent e) public void mouseMoved(MouseEvent e) J11事件适配器类监听器接口对应适配器类说明nMouseListenerMouseAdapter鼠标事件适配器nMouseMotionListeneerMouseMotionAdapter鼠标运动事件适配器nWindowListenerWindowA
16、dapter窗口事件适配器nFocusListenerFocusAdapter焦点事件适配器nKeyListenerKeyAdapter键盘事件适配器nComponentListenerComponentAdapter组件事件适配器nContainerListenerContainerAdapter容器事件适配器内部类和匿名类n监听器类中封装的业务逻辑具有非常强的针对性,一般没有重用价值,因此经常采用内部类或匿名类的形式来实现。J12,J13AWT常用组件nButton可接收点击操作的矩形GUI组件nCanvas 用于绘图的面板nCheckbox 复选框组件nCheckboxMenuItem
17、复选框菜单项组件nChoice下拉式列表框,内容不可改变nComponent 组件类nContainer 容器类J14AWT常用组件nDialog对话框组件,顶级窗口、带标题栏nFrame基本的Java GUI窗口组件nLabel标签类nList包含内容可变的条目的列表框组件nMenu菜单组件nMenuItem菜单项(二级菜单)组件nPanel基本容器类,不能单独存在AWT常用组件nScrollbar滚动条组件nScrollPane带水平及垂直滚动条的容器组件nTextArea多行文本域nTextField单行文本框nWindow抽象的GUI窗口类,无布局管理器AWT视觉控制类njava.aw
18、t.Color类Color类用于表示标准RGB颜色空间中的颜色,主要用于在GUI开发中设置组件的背景色和前景色。njava.awt.Font类用于表示字体,Font对象主要有以下三方面字体信息:n字体名称n字体样式n字体大小J15AWT绘图n绘图原理:定义子类继承现有组件类,通过重写Component类定义的paint()方法,加入所需的绘图逻辑,以实现在AWT组件上绘图的目的。public void paint(Graphics g)njava.awt.Graphics是处理各种图形对象的基本工具类,Graphics支持两种绘图方式:n基本绘图:画线、多边形、圆、填充图形和文字等n绘制图像:主要用于图
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年物联网产业应用实施方案
- 新能源商用车电气设备检修课件 项目四-任务2车门锁故障检修
- 一年级上册心理健康课件上课真好玩
- 电控专业就业前景
- 消化道健康宣教内容
- 2007年7月国家开放大学法学本科《商法》期末纸质考试试题及答案
- 湘教版AI基础教程
- 2026年食品饮料六月质量监管方案
- 2026年企业信息化建设及数据安全管理方案
- 九年级全册化学溶液浓度精讲|溶质质量 溶液配制
- 2025年医疗废物分类收集与转运处置管理制度培训试题及答案
- 2026年建设工程质量检测人员考试(建筑地基与基础检测)题库及答案(安徽)
- 2025年国家故宫博物院应届高校毕业生招聘64人(北京)笔试历年参考题及答案
- 两层停车场施工方案设计
- 2026内蒙古通辽市人民医院招聘备案制编制护理人员50人笔试备考试题及答案解析
- 卧龙包头永磁电机产业园项目环境影响报告书
- 2025中国国新资产管理有限公司相关岗位招聘4人笔试历年常考点试题专练附带答案详解2套试卷
- 2025年发电厂应聘值长面试题库及答案
- 2025年青少年保护海洋环境知识竞赛题库及答案
- 大型机具移动施工方案
- DB11-T 638-2023 房屋修缮工程工程量计算标准
评论
0/150
提交评论