JFace为SWT添加了什么?

以下是有什么区别的:

  1. TreeViewer&Tree
  2. TableViewer和表
  3. TreeViewerColumn&TreeColumn
  4. TableViewerColumn和TableColumn

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

PS:如果你能帮助我找到理解他们的好资源,那将是一个很大的帮助。谢谢!

您可以标题为“JFace为SWT添加了什么?”。

观众来自JFace,Widgets来自SWT。

总之,JFace使Widgets易于操作并插入GUI。 JFace让您免于操纵SWT窗口小部件元素的所有苦差事,以向静态窗口小部件添加行为。 SWT只提供监听器,JFace使用这些监听器让您专注于真实世界模型与其SWT表示之间的映射。

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

  1. 如果您构建标准SWT窗口小部件,则必须描述树的内容(设置一个或多个顶部项,将一些TreeItem挂钩到每个根,可能添加选择侦听器),然后管理其所有过渡。 那棵树将具有很少的内置逻辑:只是崩溃/扩展和选择监听器。 期。
    那将是一个静态树。
    TreeViewer允许您在该树中注入许多不同类型的行为:如何填充,过滤,如何标记TreeItems。
    您将通过注册满足指定接口的类来完成此操作(例如,ILabelProvider将允许您将TreeItem标签映射到文件夹中的文件名)。
    没有TreeViewer,构建一个体面的响应树将是一项艰苦的工作。 总之,它可以轻松地将底层真实世界层次模型映射到SWT树表示。

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

  3. TreeViewerColumn。 很久以前(在3.3之前),SWT Trees没有列。 树没有列表有列,但它们没有扩展/收缩。 从3.3开始,您可以向树添加列。 通过向TreeViewer添加TreeViewerColumn而不是仅仅将TreeColumn添加到Tree(您仍然必须这样做),由于与上述类似的原因,您可以更好地执行此操作,您可以添加对编辑列单元格内容的支持并且您可以填充列(通过再次编写Label Provider)。

  4. TableViewerColumn。 TableViewers也是如此:添加了版本和内容管理。

对于SWT / JFace doc,请看一下。

  1. 属于JFace的观众不适合SWT,前进,在谷歌上查找JFace教程,你会发现很多例子。

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

  3. Eric Clayberg和Dan Rube撰写的“Eclipse:构建商业级插件”。 Eric现在是Google副总裁,也是WindowBuilder Pro的父亲

  4. SWT片段也是掌握SWT对象的快速通道。

  5. 其他好书包括

    • Rob Warner和Robert Harris撰写的“SWT和JFace权威指南”
    • “Manning的SWT / JFAce在行动”