15

以下有什么区别:

  1. 树浏览器和树
  2. 表格查看器和表格
  3. TreeViewerColumn & TreeColumn
  4. TableViewerColumn & TableColumn

何时使用查看器和常规小部件?

PS:如果您能帮助我找到理解它们的好资源,那将是非常有帮助的。在此先感谢!

4

1 回答 1

26

您可以将问题命名为“JFace 向 SWT 添加了什么?”。

查看器来自 JFace,小部件来自 SWT。

总之,JFace 使小部件易于操作和插入到 GUI 中。JFace 将您从操作 SWT 小部件元素以向静态小部件添加行为的所有繁琐工作中解脱出来。SWT 只是提供了侦听器,JFace 为您使用这些侦听器来让您专注于现实世界模型与其 SWT 表示之间的映射。

让我们看看您列出的具体示例。

  1. 如果您构建一个标准 SWT 小部件,您将不得不描述 Tree 的内容(设置一个或多个顶部项目,将一些 TreeItems 挂钩到每个根,可能添加一个选择侦听器),然后管理它的所有转换。该树几乎没有内置逻辑:只是折叠/展开和选择侦听器。时期。
    那将是一个静态树。
    TreeViewer 将允许您在该树中注入许多不同类型的行为:如何填充、过滤、如何标记 TreeItem。
    您将通过注册满足明确指定接口的类来做到这一点(例如,ILabelProvider 将允许您将 TreeItem 标签映射到文件夹中的文件名)。
    如果没有 TreeViewer,构建一个体面的响应式树将是一项艰巨的工作。总之,它可以很容易地将底层的现实世界层次模型映射到 SWT 树表示。

  2. 对于 TableViewer 也是如此。TableViewer 允许您向表格添加一些自定义行为。例如,您如何编辑单元格。

  3. TreeViewer 列。很久以前(3.3 之前),SWT Trees 没有列。树没有列 表有列,但它们没有展开/折叠。从 3.3 开始,您可以将列添加到树中。您可以通过将 TreeViewerColumn 添加到 TreeViewer 而不是仅将 TreeColumn 添加到树(您仍然必须这样做)来更好地做到这一点,原因与上述类似,您可以添加对编辑列单元格内容的支持并且您可以填充该列(通过再次编写标签提供程序)。

  4. 表查看器列。TableViewers 也是一样:添加版本和内容管理。

对于 SWT/JFace 文档,请查看。

  1. 属于 JFace 的查看者不适合 SWT,要继续前进,请在 google 上查找 JFace 教程,您会发现很多示例。

  2. Steve Northover 的书(SWT 之父)“SWT: The Standard Widget Toolkit, Volume 1”(AFAIK 目前还没有第二卷)。

  3. “Eclipse:构建商业质量插件”,作者 Eric Clayberg 和 Dan Rube。Eric 现在是 Google 副总裁,也是WindowBuilder Pro之父

  4. SWT 片段也是掌握 SWT 对象的捷径。

  5. 其他好书包括

    • Rob Warner 和 Robert Harris 的“SWT 和 JFace 权威指南”
    • “Manning 的 SWT/JFAce 在行动”
于 2011-02-26T08:13:10.260 回答