13 Eclipse 界面开发.docVIP

  • 3
  • 0
  • 约2.6万字
  • 约 23页
  • 2015-08-28 发布于安徽
  • 举报
(完美WORD文档DOC格式,可在线免费浏览全文和下载)值得下载!

13Eclipse的界面开发Eclipse平台的用户界面是采用SWT和JFace开发的。SWT和JFace是Eclipse特有的用户界面API包,它们可以用于开发单独的GUI本机应用程序。SWT(StandardWidgetToolkit)是为Java开发人员提供的标准小窗口工具箱,它与底层操作系统的GUI组件紧密集成,提供可移植的API。JFace是一个用户界面工具箱,它提供较难实现的、用于开发用户界面的helper类。JFace建立在原始小窗口系统之上,它提供常用的用户界面编程的类,包括查看器动作和添加项,图片和字体注册表,以及对话框和向。 本章将详细介绍这两个API的使用以及如何用它们来开发用户界面。 13.1SWT简介 标准小窗口工具箱(SWT)是一个库,它依赖本机操作系统GUI控件的实现,以创建Java版的GUI控件。 13.1.1SWT的特征 SWT类似于JDK的AWT/Swing,不同之处是SWT使用了许多本机窗口小部件。由于窗口小部件系统与生俱来的复杂性以及不同系统之间的差别,即使在理想情况下,要实现和维护跨台的窗口小部件库也是很难的。目前,有几种技术能够明显减少问题的复杂度,SWT库采用了这些技术中的底层实现技术。Eclipse提供的SWT使用JNI调用操作系统的内部API,所以能够实现与本机应用程序相同的外观。不仅如此,SWT还可以在Java方法和操作系统的调用之间建立一对一的对应关系。事实上,这正是SWT取得成功的最重要的因素之一。 采用SWT技术开发的应用程序有以下几个特征。 (1)它的外观、执行和行为都类似于本机应用程序。 (2)应用程序中的窗口小部件都依赖于本机操作系统提供的窗口小部件(或组件、控件)。 (3)本机GUI库的任何特殊行为都会在采用SWT的用户界面中表现出来。 (4)SWT应用程序的代码并不依赖于某个特定的台。 SWT中的窗口小部件(例如按钮、列表等)通过带有系统内部API的OS类、Callback以及COM调用共有的DLL向操作系统发送消息,而这些操作都被JVM、SWT封装起来,因此,SWT应用程序并不依赖于某一个平台。 13.1.2SWT代码的功能划分 SWT的源代可以从/pub/arti下载。 (1)org.eclipse.swt下包含SWT、SWTException和SWTError类。SWT定义了公共的常量。SWTException是运行时异常,当SWT内部发生任何可恢复的错误时就会抛出这个异常类。SWTError是SWT内部发生的无法恢复的错误产生的异常。 (2)org.eclipse.swt.widgets包含SWT窗口小部件的公共API类,例如Button、Shell和Display等。 (3)org.eclipse.swt.events提供了SWT事件监听器,还有与其对应的Adapter类和Event类。 (4)org.eclipse.swt.layout提供控制GUI程序中小部件布局的Layout类。 (5)org.eclipse.swt.graphics提供实现基本画图操作的类,例如Color、Rectangle等。 (6)org.eclipse.swt.printer提供对打印服务的支持。 (7)org.eclipse.swt.ole.win32提供SWT中Win32OLE实现的类。 还有其他一些包,这里就不一一介绍。对于一般的GUI编程,widgets、events和layout是3个最基本、最重要的包。 13.1.3SWT的主要类和组件 1.Display类 Display类不是可视的表单,它负责管理GUI资源以及与操作系统之间的通信。它只关心自身的窗口是如何显示、移动和重画的。此外,它还负责将类似鼠标单击和敲击键盘的事件发送给处理这些事件的窗口小部件。 Display类可能仅仅出现在GUI代的几行,但是理解它内部的操作过程是很重要。任何SWT/JFace应用程序,都必须在程序里包含一个Display的实例,以便应用程序使用操作系统的窗口小部件和容器,并且响应用户请求。 Display的主要任务是将SWT/JFace命令从代码转换成操作系统的底层调用。一旦应用程序创建了Display的实例,这个转换过程就开始了。该过程包含两部分:首先,Display对象创建一个OS类的实例,这个实例代表了本机操作系统,OS类通过一些特殊的、称为本方法的Java过程使用计算机底层资源;然后,Display对象使用这些方法将命令发送给操作系统,并且将用户动作传递给应用程序。 值得注意的是,如果操作系统中某些内容没有加入SWT,只要在SWT添加一个本方法函数,并且在本图形库里添加一个调用操作系统函数的C函数,就可以使用JNI添加这些内容。 表13-1所示列出了一些Display的

文档评论(0)

1亿VIP精品文档

相关文档