- 1、本文档共36页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第9章 图形用户界面GUI
第9章 常用组件GUI设计 主要内容 AWT的基础知识 JDK中提供了AWT和Swing两个包,用于GUI程序的设计和开发。 开发图形界面的应用程序时,需要用到AWT(抽象图形工具集)。AWT是Java开发工具包(JDK)的一部分,是Java基本类(JFC)的核心。AWT的作用是给用户提供基本的界面组件,如:窗口、按键、菜单等。此外,AWT还提供事件处理结构,支持剪贴板、数据传输和图像操作。 在Java 1.0中,AWT最初的设计目标是提供一个用来建立图形用户界面的独立平台,可以让程序员组建一个通用的GUI,使其在所有平台上都能正常显示。遗憾的是,这个目标并没有很好的实现,但幸运的是,这种情况从Java 1.1以后得到了大的改进。从Java 1.2开始,AWT添加了被称为“Swing”的新GUI库。 Swing是基于AWT基本结构创建的二级用户界面工具集。与旧的AWT相比,Swing提供更加丰富的组件集,Swing中所提供的组件集几乎可以替代所有AWT中原有的组件。由此,许多人也许会产生Swing是AWT的替代物的误解,而实际上Swing是基于AWT之上创建的。因此,为了准确的掌握Swing组件集的工作方式,必须首先掌握AWT组件的行为及其工作原理。 java.awt包简介 AWT在java.awt包中提供,表8.1列出了AWT中的Java软件包。 AWT包含四个主要的类:组件类(Component)、容器类(Container)、图形类(Graphics)和布局管理器类(LayoutManager和LayoutManager2)。 组件、容器和布局管理器构成了AWT中的简单基础关系:容器中可以包含组件;所有的容器都包含布局管理器(java.awt.Container类除外),用来指定容器中组件的位置和形状。图形类则提供在组件中显示文本和图形的方法。AWT中的许多操作都发生在组件、容器和布局管理器之间。 Java语言中,面板(Panel)、滚动条(Scrollbar)、按键(Button)、标签(Label)等等用户界面组件一般都派生自java.awt.Component类。图8.1是一些主要的AWT组件的结构层次。 AWT的基础知识 GUI组件可以分为两大类:基本组件和容器,分别是java.awt.Component和java.awt.Container的直接或间接子类。 程序的GUI部分由AWT线程管理。 事件响应原理 问题:如何让按钮在用户按下时执行特定的工作? 需要两项 1. 被按下时要执行的方法(也就是按钮的任务) 2. 检测按钮被按下的方法(可以理解为按钮的感应装置) 我们得想办法知道鼠标是否被按下了,所以说,我们很在意“用户按下按钮”这个事件。 取得用户的事件 假设你要把按钮上的文字在用户按下的时候从“ok”变成“I’ve been clicked”,首先你得知道改变按钮文字的方法。 然后呢?这个方法在什么时候被执行?我们怎么知道按钮被按下去呢? 在Java上,取得与处理用户操作的事件的过程称为event-handling。Java有许多不同的事件类型,大多数都与GUI上的用户操作有关。如果用户按下了按钮,就会产生事件。 取得用户的事件 如果这是个“播放音乐”的按钮,那就表示说用户想听音乐,所以最直截了当的事件就是这种表明要执行某种操作的事件。 对这样的按钮来说,你不会在乎:按钮正被按下、按钮已经放开这类过渡性事件,你只想知道用户是不是要采取某种行动,也就是说你不管鼠标是否一直按着不放之类的事件,只管用户的真正意图! 首先,按钮要知道它的作用: 其次,按钮要在按键事件发生时调用执行功能的方法。 如果想要知道按钮的事件,就会监听事件的接口。 监听接口是介于监听(你)与事件源(按钮)之间的桥梁。 Swing/AWT的GUI组件是事件的来源。以Java的术语来说,事件来源是个可以将用户操作(点击鼠标、按键、关闭窗口等)转换成某种事件类的对象。(java.awt.event) 事件源(按钮)会在用户做出相关动作时(按下按钮)产生事件对象。你的程序大多数情况是事件的接受方而不是创建方—你会花较多的时间当监听者而不是事件来源。 每个事件类型都有相对应的监听者接口。想要接收MouseEvent的话就要实现MouseListener这个接口。想要WindowEvent吗?实现WindowListener。 接口的实现规则……? 某些接口不只有一个方法,因为事件本身就有不同的形态。MouseListener:mousePressed、mouseReleased、MouseMoved……。虽然都是MouseEve
您可能关注的文档
最近下载
- 数字水务智慧水务整体解决方案.docx VIP
- 高中物理力学探究活动设计.doc VIP
- 温州大学432统计学2020---2021年考研专业课初试真题.pdf VIP
- 海底捞绩效考核海底捞绩效考核.doc
- 海南大宗商品交易所.pptx VIP
- 2020年温州大学考研真题432统计学(2020年) .pdf VIP
- 石河子大学2023-2024学年第1学期《宏观经济学》期末考试试卷(A卷)附标准答案.docx
- 2025届全国各地高三模拟试题分类精编01集合与常用逻辑用语学生版.pdf VIP
- 储能系统并网发电启动试运行方案.pdf VIP
- 食品饮料行业深度报告:社会减糖大势所趋,明星产品呼之欲出-241114-东北证券-56页.pdf VIP
文档评论(0)