java - JFace 给 SWT 添加了什么?

标签 java eclipse swt jface tableviewer

以下有什么区别:

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

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

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

最佳答案

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

Viewer 来自 JFace,Widgets 来自 SWT。

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

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

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

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

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

  4. TableViewerColumn。 TableViewers 也一样:添加版本和内容管理。

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

  1. Viewer 属于 JFace 而不是 SWT 本身,继续前进,在 google 上查找 JFace 教程,您会发现很多示例。

  2. Steve Northover 的书(SWT 之父)“SWT:标准小部件工具包,第 1 卷”(据我所知,目前还没有第二卷)。

  3. “Eclipse:构建商业品质的插件”,作者:Eric Clayberg 和 Dan Rube。埃里克现在是谷歌副总裁,也是 WindowBuilder Pro 的父亲

  4. SWT snippets也是掌握 SWT 对象的快速 channel 。

  5. 其他好书包括

    • Rob Warner 和 Robert Harris 的“SWT 和 JFace 权威指南”
    • “Manning 的 SWT/JFAce 实战”

关于java - JFace 给 SWT 添加了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5125584/

相关文章:

java - SIGSTOP 和 SIGTSTP 会损坏 JVM 吗?

java - SocketChannel.write() 写入问题

java - eclipse 3.8 : Call Hierarchy misses callers from jars

Python:关闭程序后将数据保存在内存中

java - 如何在 SWT.READ_ONLY 时重置 Combo

java - Runtime.exec() 到 bash javac 错误

java - 有没有办法向 Eclipse 添加自定义类模板?

java - 带有组合框和复选框的 SWT TreeViewer

Java - 表格不会调整大小

java - 我们可以在 java 中使用 php web 服务吗?