SWT 和 JFace, 第 4 部分:ToolBar、SashForm 以及其他控件和对话框

 
SWT 和 JFace” 系列的第 4 部分对于前几部分中使用 Java™ 技术、Eclipse 以及 SWT 和 JFace 库创建应用程序的知识进行扩展。这篇文章介绍了 ToolBar、CoolBar、Tray、 SashForm、Link 和其他控件以及其他几种对话框的使用方法。另请参阅本系列前几篇文章。

在本系列的前三篇文章中,我介绍了用与构建 Eclipse 和独立、功能丰富的 GUI 的 Eclipse、Eclipse Standard Widget Toolkit (SWT) 和 JFace GUI 工具包。另外还介绍了许多基本 GUI 控件、容器类型和布局管理器。随后展示了如何把这些控件组合到一个简单的工作应用程序中。还详细说明了如何为这些应用程序提供一个菜单系统。最后演示了如何按照最佳实践创建方法和类的库,从而简化 GUI 开发。

关于本系列

本系列 “SWT 和 JFace” 包含一些描述使用 Standard Widget Toolkit (SWT) 和 JFace 库开发应用程序的基础文章,这些库是与基本的 Eclipse 软件开发工具包一起提供的。这一系列集中描述了如何使用 SWT 和 JFace 开发独立的应用程序。不过,您所学到的大部分知识同样适用于在 Eclipse 工作台上使用 SWT 的情况。

本系列从功能有限的一些简单 GUI 开始,然后朝着有用的应用程序逐步推进。我们将介绍大多数标准的、定制的 SWT 小部件和许多 JFace 特性。讨论中至少包含一个使用该技术的示例。

本系列假定您熟悉 Java 编程语言和基于 Java 技术的开发,并且对 Java AWT 或 Swing GUI 工具包有一定了解。

在这里,我们将完成对 org.eclipse.swt.widgetsorg.eclipse.swt.custom 包中的各种小部件的详细观察(除非特别说明,否则这里讨论的控件都在 widgets 包中)。关于背景知识,本文假设您至少阅读过这个系列的 第 1 部分

简介

在后面几节中,我将讨论几个 GUI 控件。这些控件通过一个叫作 BarApp 的应用程序进行演示。正如前几部分所述,BarApp 是 BasicApplication 类(内含控件生成方法)的扩展。还使用了这个应用程序的几幅屏幕快照来展示不同控件的特性。

图 1 显示了我们讨论的所有控件,包括几个 ToolBar 和一个 CoolBar。最左边是三个有边框的 Composite(包含一个 Label),每个 Composite 都位于一个 SashForm 面板内。而 SashForm 本身又处在一个更大的 SashForm 中有边框的 Composite 内。靠近左侧中间是一个垂直的 ToolBar,它的顶部有一个 Open Tracker 按钮。在右上方是四个水平的 ToolBar(在两个 CBanner 中)—— 但只能看到两个;前两个使用了文本标签,后两个使用图片(同一张图片)。这几个 ToolBar 和 CBanner 全都在外围 SashForm 中的一个 Composite 中。从清单 1 的控件层次结构中可以清楚地看出这个结构。



图 1. BarApp 示例
BarApp 示例

清单 1. BarApp 应用程序的控件层次结构
				
0: BarApp {}
    1: SashForm {}
        2: Composite {}
            3: SashForm {}
                4: Composite {}
                    5: Label {Left Pane}
                4: Composite {}
                    5: Label {Center Pane}
                4: Composite {}
                    5: Label {Right Pane}
        2: Composite {}
            3: ToolBar {}
                4: ToolItem {Open Tracker}
                4: ToolItem {Check}
                4: ToolItem {Drop}
                4: ToolItem {}
                4: ToolItem {Radio 1}
                4: ToolItem {Radio 2}
                4: ToolItem {Radio 3}
                4: Label {}
            3: CBanner {}
                4: ToolBar {}
                    5: ToolItem {Press 1}
                    5: ToolItem {Check}
                    5: ToolItem {Drop}
                    5: ToolItem {}
                    5: ToolItem {Radio 1}
                    5: ToolItem {Radio 2}
                    5: ToolItem {Radio 3}
                    5: Label {}
                4: ToolBar {}
                    5: ToolItem {Push 2}
                    5: ToolItem {Check}
                    5: ToolItem {Drop}
                    5: ToolItem {}
                    5: ToolItem {Radio 1}
                    5: ToolItem {Radio 2}
                    5: ToolItem {Radio 3}
                    5: Label {}
            3: CBanner {}
                4: ToolBar {}
                    5: ToolItem {}
                    5: ToolItem {}
                    5: ToolItem {}
                    5: ToolItem {}
                    5: ToolItem {}
                    5: ToolItem {}
                    5: ToolItem {}
                    5: Label {}
                4: ToolBar {}
                    5: ToolItem {}
                    5: ToolItem {}
                    5: ToolItem {}
                    5: ToolItem {}
                    5: ToolItem {}
                    5: ToolItem {}
                    5: ToolItem {}
                    5: Label {}
            3: CoolBar {}
                4: CoolItem {Drop}
                4: CoolItem {Drop}
                4: CoolItem {Drop}
                4: CoolItem {Drop}
                4: CoolItem {Drop}
                4: Button {Press Me 1}
                4: Button {Press Me 2}
                4: Button {Radio 1}
                4: Button {Radio 2}
                4: Button {Radio 3}
            3: Link {<a href="http://www.somecorp.com">This is a link!</a>}
            3: Composite {}
                4: Button {File}
                4: Button {Directory}
                4: Button {Color}
                4: Button {Font}




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值