欢迎来到天天文库
浏览记录
ID:8818179
大小:116.50 KB
页数:22页
时间:2018-04-08
《eclipse中用swt和jface开发入门》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Eclipse中用SWT和JFace开发入门可以使用标准窗口小部件工具箱(StandardWidgetToolkit,SWT)和JFace库来开发用于Eclipse环境的图形用户界面,而且还可以将它们用于开发单独的GUI本机应用程序。在本文中,我将介绍一些基本的SWT(基本GUI对象的名称)类型,并展示如何综合使用它们来创建有用的应用程序。 关于Eclipse、SWT和JFace 正如Eclipse的Web站点上所提到的,Eclipse是一种通用工具平台。它是一个开放的、可用于任何东西的可扩展IDE,没什么特别之处,它为工具开发人员提供了灵活性以及对软件技术的控制。 Eclipse为
2、开发人员提供了生产大量GUI驱动的工具和应用程序的基础。而这项功能的基础就是GUI库SWT和JFace。 SWT是一个库,它创建了Java版的本地主机操作系统GUI控件。它依赖于本机实现。这意味着基于SWT的应用程序具有以下几个关键特性:·它们的外观、行为和执行类似于“本机”应用程序。·所提供的窗口小部件(widget)反映了主机操作系统上提供的窗口小部件(组件和控件)。·主机GUI库的任何特殊行为都在SWTGUI中得到反映。 这些目标使得SWT不同于Java技术的Swing,Swing的设计目标是消除操作系统的差异。 SWT库反映了主机操作系统的基本窗口小部件。在许多环境下,这种方
3、法太低级。JFace库有助于向SWT应用程序中添加大量服务。JFace并没有隐藏SWT,它只是扩展了SWT。正如您将在这一系列的后面部分中看到的,SWT最重要的扩展之一是,将应用程序的数据模型与显示及更改它的GUI隔离开来。 在开始之前,我需要介绍一些SWT术语:·Widget——基本的SWTGUI组件(类似于JavaAWT中的Component和Swing中的JComponent)。Widget是一个抽象类。·Control——拥有操作系统的对等物的窗口小部件(换句话说,在操作系统中具有同一身份)。Control是一个抽象类。·Composite——包含其他控件的控件(类似于JavaA
4、WT中的Container和Swing中的JPanel)。·Item——其他控件包含的窗口小部件(该控件可能不是复合控件),比如列表和表。注意,包含一些项的控件很少包含其他控件,反之亦然。Item是一个抽象类。 这些窗口小部件被安排在继承层次结构中。参见图1、图2和图3,了解它们是如何安排的。在图2中,Basic1类是来自本文的类,而其他所有类都是标准的SWT窗口小部件。图1.SWTWidget树图2.SWTComposite树图3.SWTItem列表 注意,Eclipse具有跨平台特性(因此可以在许多操作平台上运行),本文基于Eclipse的Microsoft?Windows?版本。
5、因此,本文包含的每个例子都应该能够不加任何更改地在其他平台上使用。还要注意的是,本文是基于EclipseV3.0的。EclipseV3.1中添加了少许GUI窗口小部件类型和特性。 基本控件 几乎所有SWTGUI都是从某些基础部分开始创建的。所有SWT窗口小部件都可以在org.eclipse.swt.widget或org.eclipse.swt.custom包中找到。(一些Eclipse插件还在其他包中提供了定制的窗口小部件。)窗口小部件包中包含一些基于操作系统控件的控件,而定制包中则包含一些超出操作系统控件集之外的控件。一些定制的软件包控件类似于窗口小部件包中的控件。为了避免命名冲突,
6、定制控件的名称都是以“C”开始的(例如,比较CLabel与Label)。 在SWT中,所有控件(除了一些高级控件,比如shell,将在后面进行讨论)在创建的时候都必须有一个父控件(一个复合实例)。在创建的时候,这些控件被自动“添加”到父控件中,这与必须明确添加到父控件中的AWT/Swing中的控件有所不同,自动添加产生了一种“自上而下”地构造GUI的方法。这样,所有控件都可以采用一个复合父控件(或者一个子类)作为构造函数的参数。 大多数控件都有一些必须在创建时设置的标记选项。因此,大多数控件还有另外一个构造函数参数,我们通常称之为样式,该参数提供了设置这些选项的标记。所有这些参数值都是
7、staticfinalint,并且都是在org.eclipse.swt包的SWT类中定义的。如果不需要任何参数,则可以使用SWT.NONE值。 标签 标签可能是最简单的控件,标签被用于显示纯文本(没有颜色、特殊字体或样式的文本)或称为图标的小图像。标签不接受焦点(换句话说,用户不能通过Tab键或鼠标移动到标签),因此,标签无法产生输入事件。 清单1展示了如何创建一个简单的文本标签。 清单1.创建一个带文本的标签i
此文档下载收益归作者所有