- 1、本文档共36页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
9java高级大学课件
第9章 构造图形用户界面程序 第9章 构造图形用户界面程序 屏幕上可以显示什么元素? 如何摆放这些元素? 元素如何响应用户的输入? 图形用户界面(GUI)概述 Java基础类库(Java Foundation Classes,JFC) 是指用于创建图形用户界面的JavaAPI,包括AWT、Swing等。 AWT和Swing AWT——Abstract Window Toolkit(抽象窗口工具集) java.awt、java.awt.event包 Swing——是建立在AWT基础上的增强型GUI组件库,其中使用轻量组件替换了AWT中的部分重量组件。 javax.swing包 组件与容器 组件(Component) 组件是图形用户界面的基本组成元素,凡是能够以图形化方式显示在屏幕上并能够与用户进行交互的对象均为组件。 抽象类java.awt.Component是除菜单相关组件之外所有组件类的根父类。 组件不能独立显示,必须放在容器中才可以显示出来。 组件与容器 容器(Container) 容器是可以放置其他组件的组件。 容器类型 可以自由停泊的顶级窗口; 可以作为容器容纳其他组件,但不能独立存在必须被添加到其他容器中的面板。 Java GUI组件的继承层次 JFrame框架 JFrame类是swing包中可以实现顶层窗口的组件,在Java中通常把顶级窗口叫作“框架”。 一个框架包含3个部分:标题栏(title bar)、可选的菜单栏(menu bar)和内容面板(content pane)。 JFrame类的构造器 public JFrame() public JFrame(String title) JFrame框架 创建一个框架——imageviewer0-1 JFrame框架 向框架中加入组件 JFrame框架 向框架加入菜单 创建菜单会用到以下类: JMenuBar——表示菜单栏 JMenu——表示菜单(如“文件”、“编辑”等) JMenuItem——表示菜单项(如“打开”、“保存”等) JFrame类的setJMenuBar方法 将菜单栏加入到框架中。 JFrame框架 向框架加入菜单的代码 JFrame框架 修改imageviewer0-1程序,完成以下练习: 练习3:在以上菜单栏的基础上加入一个新的菜单,叫作“Help”,里面有一个菜单项“About ImageViewer”。 练习4:为了提高程序的可读性和内聚,把创建菜单的代码放到一个独立的方法中,方法名为makeMenuBar,然后从makeFrame方法中调用这个方法。 练习5:运行imageviewer0-1程序,选择一个菜单项时会发生什么情况? 事件处理 事件处理模型中的三类对象 事件:用户对组件的一个操作,称之为一个事件。 Java中有很多不同类型的事件类,用户在GUI组件上进行的操作都可以用定义好的事件描述。 事件源:发生事件的组件就是事件源。 事件处理器:也叫“事件监听器”,它是包含事件处理方法的对象。 事件处理 GUI事件类型层次 事件处理 事件处理机制 当GUI组件与用户交互时,用户的操作会触发相应的事件; 事件发生时自动创建事件对象,并将该对象提交给事件监听器; 事件监听器的事件处理方法接收到事件对象,对其进行解释,并作出相应处理。 事件处理 实现事件监听 定义事件监听器,任何对象都可以成为事件的监听器,只要它实现了相应事件的监听器接口(或继承事件适配器类)。 监听器注册,调用事件源对象的添加监听器方法。 实现事件监听有两种不同的风格: 对多个事件源的多种事件提供惟一的监听器; 为每个不同的事件源定义自己的监听器。 事件处理 集中接收事件 举例: 在imageviewer0-1程序运行时,菜单项被用户选中发生ActionEvent事件,要使ImageViewer类的对象成为菜单中所有菜单项事件的惟一监听器,要对该类做以下修改: 在该类的头部声明它实现java.awt.event包中的ActionListener接口; 在类体中实现ActionListener接口的actionPerformed抽象方法,该方法在ActionListener接口中的声明如下: public void actionPerformed(ActionEvent e) 这个方法是ActionListener接口中惟一定义的抽象方法。 调用菜单项的addActionListener方法,通过参数传递注册ImageViewer对象为它的一个监听器。 事件处理 事件处理 事件及相应监听器接口 事件处理 练习6:在上面的事件处理中,两个菜单项注册了同一个监听器对象。在监听器对象的act
文档评论(0)