我开始在 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 上,反之亦然)。
目前,您必须保留一个单独的项目列表,并且需要使用索引。
在 SWT 4.2 中,可能在更早的版本中(尽管我没有检查),该类TreeItem
是 , 的子类Widget
,并且Widget
有setData(Object o)
和getData()
. 您可以使用它将任意的、特定于应用程序的数据附加到TreeItem
实例。