Eclipse中用SWT和JFace开发入门
2008-02-23 07:49:11来源:互联网 阅读 ()
关于 Eclipse、SWT 和 JFace
正如 Eclipse 的 Web 站点上所提到的,Eclipse 是一种通用工具平台。它是一个开放的、可用于任何东西的可扩展 IDE,没什么特别之处,它为工具开发人员提供了灵活性以及对软件技术的控制。
Eclipse 为开发人员提供了生产大量 GUI 驱动的工具和应用程序的基础。而这项功能的基础就是 GUI 库 SWT 和 JFace。
SWT 是一个库,它创建了Java 版的本地主机操作系统 GUI 控件。它依赖于本机实现。这意味着基于 SWT 的应用程序具有以下几个关键特性:
SWT 库反映了主机操作系统的基本窗口小部件。在许多环境下,这种方法太低级。JFace 库有助于向 SWT 应用程序中添加大量服务。JFace 并没有隐藏 SWT,它只是扩展了 SWT。正如您将在这一系列的后面部分中看到的,SWT 最重要的扩展之一是,将应用程序的数据模型与显示及更改它的 GUI 隔离开来。
在开始之前,我需要介绍一些 SWT 术语:
图 1. SWT Widget 树
图 2. SWT Composite 树
图 3. SWT Item 列表
注意,Eclipse 具有跨平台特性(因此可以在许多操作平台上运行),本文基于 Eclipse 的 Microsoft? Windows? 版本。因此,本文包含的每个例子都应该能够不加任何更改地在其他平台上使用。还要注意的是,本文是基于 Eclipse V3.0 的。Eclipse V3.1 中添加了少许 GUI 窗口小部件类型和特性。
基本控件
几乎所有 SWT GUI 都是从某些基础部分开始创建的。所有 SWT 窗口小部件都可以在 org.eclipse.swt.widget
或 org.eclipse.swt.custom
包中找到。(一些 Eclipse 插件还在其他包中提供了定制的窗口小部件。)窗口小部件包中包含一些基于操作系统控件的控件,而定制包中则包含一些超出操作系统控件集之外的控件。一些定制的软件包控件类似于窗口小部件包中的控件。为了避免命名冲突,定制控件的名称都是以“C”开始的(例如,比较 CLabel 与 Label)。
在 SWT 中,所有控件(除了一些高级控件,比如 shell,将在后面进行讨论)在创建的时候都必须有一个父控件(一个复合实例)。在创建的时候,这些控件被自动“添加”到父控件中,这与必须明确添加到父控件中的 AWT/Swing 中的控件有所不同,自动添加产生了一种“自上而下”地构造 GUI 的方法。这样,所有控件都可以采用一个复合父控件(或者一个子类)作为构造函数的参数。
大多数控件都有一些必须在创建时设置的标记选项。因此,大多数控件还有另外一个构造函数参数,我们通常称之为样式,该参数提供了设置这些选项的标记。所有这些参数值都是 static final int
,并且都是在 org.eclipse.swt
包的 SWT
类中定义的。如果不需要任何参数,则可以使用 SWT.NONE
值。
标签
标签可能是最简单的控件,标签 被用于显示纯文本(没有颜色、特殊字体或样式的文本)或称为图标的小图像。标签不接受焦点(换句话说,用户不能通过 Tab 键或鼠标移动到标签),因此,标签无法产生输入事件。
清单 1 展示了如何创建一个简单的文本标签。
清单 1. 创建一个带文本的标签
import org.eclipse.swt.widget.*;
:
Composite parent = ...;
:
// create a center aligned label
Label label = new Label(parent, SWT.CENTER);
label.setText("This is the label text");
注意,该文本是采用不同于构造函数的单独的方法设置的。这是所有 SWT 控件的一个典型象征。只有父控件和样式是在构造函数中设置的,其他所有属性都是在已创建的对象上设置的。
由于平台的限制,标准标签控件不能同时拥有文本和图标。为了支持同时拥有文本和图标,可以使用 CLabel 控件,如清单 2 中所示。
清单 2. 创建一个包含文本和图像的标签
import com.eclipse.swt.graphics.*;
import org.eclipse.swt.widget.*;
import org.eclipse.swt.custom.*;
:
Composite parent = ...;
Image image = ...;
:
// create a left aligned label with an icon
CLabel Clabel = new CLabel(parent, SWT.LEFT);
label.setText("This is the imaged label text"");
label.setImage(image);
文本
在标签显示文本的同时,您时常还想允许用户插入文本。文本 控件就是用于此目的的。文本可以是单行的(一个文本字段),也可以是多行的(一个文本区域)。文本还可以是只读的。文本字段中没有描述,因此,常常通过标签控件处理它们,以确定它们的用途。文本控件还可以包含一个“工具提示”,提供关于控件用途的信息(所有控件都支持这一特性)。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:Eclipse开发工具使用指南
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash