第5章 用户图形界面设计.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 用户图形界面设计

* GridBagConstraints的成员变量(续三) ⑦weightx,weighty:用来指定在容器大小改变时,增加或减少的空间如何在组件间分配。 默认值是0,即所有的组件将聚拢在容器的中心,多余的空间将放在容器边缘与网格单元之间。 每一列组件的weightx值指定为该列组件的weightx的最大值;每一行组件的weighty值指定为该行组件的weighty的最大值。 weightx和weighty的取值一般在0.0~1.0之间,数值大表明组件所在的行或列将获得更多的空间。 * 五、 GridBagLayout布局管理器 【例5.8】GridBagLayout布局管理器应用示例。 程序清单: GridBagLayoutTest.java (a) 例6-6运行结果 (b) 改变窗口大小后组件的布局 图6-8 GridBagLayout示例 * 5.3 事件处理 Java的图形用户界面中,每当用户执行一个操作,如按下一个按钮、移动鼠标、选择一项菜单、点击一个图标等,都会触发一个对用户有影响的事件,应用程序一旦检测到这个事件,就根据事件的类型,调用相对应的事件处理方法对事件进行处理。 * 一、 事件处理机制 JDK1.0的事件处理采用基于层次模型的向上传递机制。 这种模型中,当事件发生时首先将事件发送给产生事件的组件,如果该组件不对事件进行处理,则事件将自动传递到包含该组件的容器,因此事件将沿着组件间的包含关系层层向上传递。 由于这种层层向上传递,一些无关或不重要的事件也会一层层地向上传递,会使得CPU浪费在处理一些无关的事件上,而且为了处理事件,程序员必须继承事件源组件对应的类或在它的容器中编写一个功能很强大的事件处理方法,因此这种方式并不能很好地满足系统开发的需要。 * 一、 事件处理机制(续一) 从JDK1.1及以上版本,采用了一种新的事件处理机制,称为委托方式或监听器方式。 在这种方式下,Java定义了许多不同的事件类,用来描述不同种类的事件,如描述按钮、文本域和菜单等组件动作的ActionEvent类; 每一个可以触发事件的组件都被当做事件源,不同的事件源触发事件的种类不同,一个事件源可以触发多种事件; 接收、控制和处理由事件源所触发事件的对象叫做监听器,每一种事件都对应专门的监听器。 在委托方式事件处理模型中,需要事件源事先注册一个或多个监听器,当界面操作事件产生时,由于事件源本身不处理事件,该组件将把事件发送给能接收和处理该事件的监听器,委托相应的事件监听器来处理。 * 一、 事件处理机制(续二) 监听器是委托方式事件处理机制的重要组成部分。 在Java中每类事件都定义了一个相应的监听器接口,该接口定义了接收和处理事件的方法。实现该接口的类,其对象可作为监听器注册。 在图形用户界面中,需要响应用户操作的相关组件要注册一个或多个相应事件的监听器,该监听器中包含了能接收和处理事件的方法。 在该类事件产生时,事件对象只向已注册的监听器报告。因此,委托方式的事件处理机制的实现包括下列两部分。 * 1.定义监听器类,实现监听器接口 对于某种类型的事件XXXEvent, 要想接收并处理这类事件,必须定义相应的事件监听器类,该类需要实现与该事件相对应的接口XXXListener。如: public class MyClass implements ActionListener{ …… // ActionListener接口中只定义了一个方法。 public void actionPerformed(ActionEvent e) { …… //响应某个动作的代码。 } } 则Myclass将成为处理ActionEvent事件的监听器类,它的对象可以作为Button等组件的监听器注册。 * 2.注册监听器 通过调用组件的addXXXListener( )的方法,在组件上将监听器类的实例注册为监听器。如:someComponent.addActionListener(new MyClass( )); P240【例6-7】 委托方式事件处理机制示例。 程序清单6-7: TestButton.java 图6-9 例6-7的运行结果 * 在例6-7中,创建Button对象时,这个对象可以通过addActionListener方法注册为ActionEvents的监听器。 程序运行后,单击按钮,系统将调用监听器的actionPerformed()方法,显示两行字符串: Action occurred Buttons label is:Press Me! * 二、 AWT事件类与监听器接口 在Java中,定义了许多事件类和监听器接口,在java

文档评论(0)

173****7830 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档