首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

SWT 和 JFace,第 4 部分 简介(1)

SWT 和 JFace,第 4 部分 简介(1)

[size=1.0625]在本系列的前三篇文章中,我介绍了用与构建 Eclipse 和独立、功能丰富的 GUI 的 Eclipse、Eclipse Standard Widget Toolkit (SWT) 和 JFace GUI 工具包。另外还介绍了许多基本 GUI 控件、容器类型和布局管理器。随后展示了如何把这些控件组合到一个简单的工作应用程序中。还详细说明了如何为这些应用程序提供一个菜单系统。最后演示了如何按照最佳实践创建方法和类的库,从而简化 GUI 开发。
关于本系列[size=1.0625]本系列 “SWT 和 JFace” 包[size=1.0625]含一些描述使用 Standard Widget Toolkit (SWT) 和 JFace 库开发应用程序的基础文章,这些库是与基本的 Eclipse 软件开发工具包一起提供的。这一系列集中描述了如何使用 SWT 和 JFace 开发独立的应用程序。不过,您所学到的大部分知识同样适用于在 Eclipse 工作台上使用 SWT 的情况。
[size=1.0625]本系列从功能有限的一些简单 GUI 开始,然后朝着有用的应用程序逐步推进。我们将介绍大多数标准的、定制的 SWT 小部件和许多 JFace 特性。讨论中至少包含一个使用该技术的示例。
[size=1.0625]本系列假定您熟悉 Java 编程语言和基于 Java 技术的开发,并且对 Java AWT 或 Swing GUI 工具包有一定了解。

[size=1.0625]在这里,我们将完成对 org.eclipse.swt.widgets[size=1.0625] 和 org.eclipse.swt.custom[size=1.0625] 包中的各种小部件的详细观察(除非特别说明,否则这里讨论的控件都在 widgets[size=1.0625] 包中)。关于背景知识,本文假设您至少阅读过这个系列的 第 1 部分。
简介[size=1.0625]在后面几节中,我将讨论几个 GUI 控件。这些控件通过一个叫作 BarApp 的应用程序进行演示。正如前几部分所述,BarApp 是 BasicApplication 类(内含控件生成方法)的扩展。还使用了这个应用程序的几幅屏幕快照来展示不同控件的特性。
[size=1.0625]图 1 显示了我们讨论的所有控件,包括几个 ToolBar 和一个 CoolBar。最左边是三个有边框的 Composite(包含一个 Label),每个 Composite 都位于一个 SashForm 面板内。而 SashForm 本身又处在一个更大的 SashForm 中有边框的 Composite 内。靠近左侧中间是一个垂直的 ToolBar,它的顶部有一个 Open Tracker 按钮。在右上方是四个水平的 ToolBar(在两个 CBanner 中)—— 但只能看到两个;前两个使用了文本标签,后两个使用图片(同一张图片)。这几个 ToolBar 和 CBanner 全都在外围 SashForm 中的一个 Composite 中。从清单 1 的控件层次结构中可以清楚地看出这个结构。
图 1. BarApp 示例清单 1. BarApp 应用程序的控件层次结构

[size=0.875][size=0.875]0: BarApp {}
[size=0.875]    1: SashForm {}
[size=0.875]        2: Composite {}
[size=0.875]            3: SashForm {}
[size=0.875]                4: Composite {}
[size=0.875]                    5: Label {Left Pane}
[size=0.875]                4: Composite {}
[size=0.875]                    5: Label {Center Pane}
[size=0.875]                4: Composite {}
[size=0.875]                    5: Label {Right Pane}
[size=0.875]        2: Composite {}
[size=0.875]            3: ToolBar {}
[size=0.875]                4: ToolItem {Open Tracker}
[size=0.875]                4: ToolItem {Check}
[size=0.875]                4: ToolItem {Drop}
[size=0.875]                4: ToolItem {}
[size=0.875]                4: ToolItem {Radio 1}
[size=0.875]                4: ToolItem {Radio 2}
[size=0.875]                4: ToolItem {Radio 3}
[size=0.875]                4: Label {}
[size=0.875]            3: CBanner {}
[size=0.875]                4: ToolBar {}
[size=0.875]                    5: ToolItem {Press 1}
[size=0.875]                    5: ToolItem {Check}
[size=0.875]                    5: ToolItem {Drop}
[size=0.875]                    5: ToolItem {}
[size=0.875]                    5: ToolItem {Radio 1}
[size=0.875]                    5: ToolItem {Radio 2}
[size=0.875]                    5: ToolItem {Radio 3}
[size=0.875]                    5: Label {}
[size=0.875]                4: ToolBar {}
[size=0.875]                    5: ToolItem {Push 2}
[size=0.875]                    5: ToolItem {Check}
[size=0.875]                    5: ToolItem {Drop}
[size=0.875]                    5: ToolItem {}
[size=0.875]                    5: ToolItem {Radio 1}
[size=0.875]                    5: ToolItem {Radio 2}
[size=0.875]                    5: ToolItem {Radio 3}
[size=0.875]                    5: Label {}
[size=0.875]            3: CBanner {}
[size=0.875]                4: ToolBar {}
[size=0.875]                    5: ToolItem {}
[size=0.875]                    5: ToolItem {}
[size=0.875]                    5: ToolItem {}
[size=0.875]                    5: ToolItem {}
[size=0.875]                    5: ToolItem {}
[size=0.875]                    5: ToolItem {}
[size=0.875]                    5: ToolItem {}
[size=0.875]                    5: Label {}
[size=0.875]                4: ToolBar {}
[size=0.875]                    5: ToolItem {}
[size=0.875]                    5: ToolItem {}
[size=0.875]                    5: ToolItem {}
[size=0.875]                    5: ToolItem {}
[size=0.875]                    5: ToolItem {}
[size=0.875]                    5: ToolItem {}
[size=0.875]                    5: ToolItem {}
[size=0.875]                    5: Label {}
[size=0.875]            3: CoolBar {}
[size=0.875]                4: CoolItem {Drop}
[size=0.875]                4: CoolItem {Drop}
[size=0.875]                4: CoolItem {Drop}
[size=0.875]                4: CoolItem {Drop}
[size=0.875]                4: CoolItem {Drop}
[size=0.875]                4: Button {Press Me 1}
[size=0.875]                4: Button {Press Me 2}
[size=0.875]                4: Button {Radio 1}
[size=0.875]                4: Button {Radio 2}
[size=0.875]                4: Button {Radio 3}
[size=0.875]            3: Link {<a href="http://www.somecorp.com">This is a link!</a>}
[size=0.875]            3: Composite {}
[size=0.875]                4: Button {File}
[size=0.875]                4: Button {Directory}
[size=0.875]                4: Button {Color}
[size=0.875]                4: Button {Font}




山不在高,有仙则名;水不在深,有龙则灵。
返回列表