【发布时间】:2012-07-22 10:45:13
【问题描述】:
我开始在 Java 中使用 SWT GUI 工具包。我需要将一些数据附加到 TreeItems。我以前使用的每个工具包都有一个树项,其中包含一个原始指针或一个基础对象引用以提供基本数据包含,但我在 SWT 的 TreeItem 中找不到。
如何将数据附加到 TreeItem?
【问题讨论】:
我开始在 Java 中使用 SWT GUI 工具包。我需要将一些数据附加到 TreeItems。我以前使用的每个工具包都有一个树项,其中包含一个原始指针或一个基础对象引用以提供基本数据包含,但我在 SWT 的 TreeItem 中找不到。
如何将数据附加到 TreeItem?
【问题讨论】:
这很简单。
TreeItem treeItem = new TreeItem(tree, SWT.NONE);
treeItem.setData("key", obj);
获取数据时:
Object obj = treeItem.getData("key");
【讨论】:
答案是:使用纯 SWT 你不能。
标准小部件工具包只处理小部件、它们的层次结构和视觉表示。将数据绑定到小部件是构建在 SWT 之上的更高级的 JFace 框架(尤其是它的数据绑定工具)的主题。您需要一些时间来掌握它,但因此您获得了 Eclipse 平台的强大功能。它使您能够将模型绑定到视图,即使是双向
(→ 对模型对象的更改会立即反映在 UI 上,反之亦然)。
目前,您必须保留一个单独的项目列表,并且需要使用索引。
【讨论】:
TreeItem 派生。我只在表面上了解 Swing,但 Java 教程中的 How to Use Trees 部分似乎是在 Swing 中处理树的好资源。
在 SWT 4.2 中,可能在早期版本中(尽管我没有检查),类 TreeItem 是 Widget 的子类,Widget 有 setData(Object o) 和 getData()。您可以使用它将任意的、特定于应用程序的数据附加到 TreeItem 实例。
【讨论】: