第7章 图形用户界面.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE 第7章 图形用户界面 图形用户界面(Graphics User Interface, GUI),是指用图形的方式实现用户与计算机之间的交互。它通过图形的方式,借助菜单、按钮等标准界面元素和鼠标操作,帮助用户方便地向计算机发出命令,启动程序,并将程序的运行结果同样以图形的形式显示给用户。 GUI通常由GUI组件(有时称为控件或窗口小部件)构成。GUI组件是用户通过鼠标、键盘或其它诸如声音识别等输入形式与应用程序进行交互的对象。学习Java的GUI设计就必须了解几个概念:容器、组件、容器布局、事件处理机制。本章将通过实例剖析Swing常用组件的功能、如何在组件中绘图、各种事件的应用、以及各种布局的设置等问题。 7.1 Java GUI概述 随着JDK1.2(现改名为Java 2)的发布,Java的API有两套完整的按钮、菜单、文本域以及其它GUI组件:抽象窗口工具集(Abstract Window Toolkit ,AWT)和Swing组件集。AWT从JDK1.0开始就是Java的一部分,由AWT扩展而来的Swing组件集,是Java1.2引入的新的GUI组件库。二者均包括在JFC(Java Foundation Classes,Java基础类)中,JFC是一组支持在流行平台的客户端应用程序中创建GUI和图形功能的Java类库,作为J2SE的一个有机部分,主要包含五个部分,即AWT、Java2D、Accessibility、DragDrop、Swing,它是一套帮助开发人员设计复杂应用程序的开发包。 7.1.1 AWT与Swing AWT是Java2版本之前的Java平台提供的一套图形用户界面组件类型。AWT库最重要的特征之一是,它与运行Java程序的计算机窗口系统(经常被称作本地窗口系统,native windowing system)底层相结合。AWT组件建立在对等模型(peer model)的基础上。每个AWT组件有一个相应的用本地系统的代码编写的对等类,对等类充当Java代码与本地窗口系统之间的接口,对等类里的方法是用本地代码编写的。例如,若要显示Button类型的对象时,需用java.awt.Button类,它有一个名为java.awt.peer.Button的对等类,在运行微软的Windows 操作系统的计算机上,该Button对象将具有与其它Windows应用程序相同的外观和感觉;同样,在运行Apple公司的Mac OS操作系统的计算机上,该Button对象将具有与其它Macintosh应用程序相同的外观和感觉。因此,AWT组件天生就是平台相关的,AWT组件被认为是重量级组件,它们直接映射到本地组件,需要由本地窗口系统提供资源。 注意:本地方法封装了用非Java语言(通常是C或者C++)编写的代码的调用,使JVM的功能获得扩展。 Swing组件从根本上来说建立在AWT上,它的四个顶层的窗口类(JApplet, JDialog, JFrame与JWindow)是由AWT重量级组件派生而来,如图7.1所示。它们本身也依赖于本地窗口,除此以外,所有Swing组件都是轻量级组件。Swing的一个显著特点是用Swing实现的图形界面外观可以按需更换,而无需重写任何代码。这就让Swing程序能自动适应于它所运行的计算机的常规风格和外观,不需要程序员为特定的计算机开发特定的界面。事实上,这些外观不限于常见的几种机器,Swing可以开发新的外观风格。Swing中内置了几个观感包。例如,javax.swing.plaf.motif包里有实现Motif界面的类。Motif界面是一种常用的基于UNIX的界面。这些类知道如何画出每个组件,也知道如何响应鼠标、键盘以及其它和这些组件联系在一起的事件。javax.swing.plaf.windows包则负责实现Windows风格的界面。Java缺省的设计风格是“Java外观”(被称为“Metal”),它独立于任何一种窗口系统的Java外观。 图7.1 AWT与Swing顶层窗口类之间的关系 Swing改善了AWT包没有弹性、缺乏效率的缺点,提供了更丰富的视觉感受,人们越来越多地使用Swing组件构建图形用户界面,在本书中给出的有关GUI程序中均使用Swing组件。 7.1.2 Swing组件 轻量级组件不是依靠本地组件来支持它的显示,而是完全由Java代码来绘制并显示。Swing平台无关的观感,是通过把所有负责画出一个组件的代码从组件中抽出来形成一个单独的类而实现的。例如,除了定义按钮控件的JButton类之外,还有一个单独的类负责把按钮在屏幕上画出来。画图的这个类将控制按钮的颜色、形状以及其它外面上的特征。构建轻量级组件的一种方法是扩展抽象的java.awt.Component

文档评论(0)

zhuliyan1314 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档