JFace 为 SWT 添加了什么?

2022-09-03 12:56:51

以下两者之间有什么区别:

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

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

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


答案 1

你可以把你的问题命名为“JFace为SWT增加了什么?

观众来自JFace,Widgets来自SWT。

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

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

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

  2. 这同样适用于 TableViewer。表查看器允许您向表添加一些自定义行为。例如,如何编辑单元格。

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

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

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

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

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

  3. “Eclipse: Building Commercial-Quality Plug-ins”,作者:Eric Clayberg 和 Dan Rube。Eric现在是Google的副总裁,也是WindowBuilder Pro的父亲。

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

  5. 其他好书包括

    • 《The Definitive Guide to SWT and JFace》作者:Rob Warner 和 Robert Harris
    • “曼宁的SWT/JFAce在行动”

答案 2

推荐