2012-07-22 69 views
2

我开始在Java中使用SWT GUI工具包。我需要将一些数据附加到TreeItems。我以前使用的每个工具包都有一个树项目,它包含一个原始指针或一个基础对象引用来提供基本的数据遏制,但是我在SWT中的TreeItem中找不到一个。如何将数据附加到SWT/Java中的TreeItem?

如何将数据附加到TreeItem?

回答

1

答案是:用纯SWT你不能。
标准控件工具包只处理控件,它们的层次结构和可视化表示。将数据绑定到小部件是更高级的JFace框架(尤其是数据绑定工具)的主题,它建立在SWT之上。您需要一些时间来掌握它,但是因此您可以获得Eclipse平台的强大功能。它使您可以绑定模型以查看,即使在两个方向
(→更改为模型对象立即反映在用户界面上,反之亦然)。
目前,你将不得不保持单独的项目列表,并需要与指数工作。

+0

我明白了。我希望编写一个非常简单的应用程序,我不想考虑模型并将演示文稿连接到逻辑。有一个更简单的GUI工具包,它允许这样的操作?或者,我可以 - 例如 - 从TreeItem派生并添加必需的字段?有一个非常简单的解决方案来解决我的问题吗 – Spook 2012-07-22 18:05:57

+0

使用索引是最简单的方法。 [文档](http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fswt%2Fwidgets%2FTreeItem.html)明确声明不允许从'TreeItem'派生。我只知道Swing的表面,但Java教程中的[如何使用树](http://docs.oracle.com/javase/tutorial/uiswing/components/tree.html)部分似乎是一个很好的资源与Swing中的树木一起工作。 – phineas 2012-07-22 18:38:24

+1

我觉得我要么必须使用一把扳手来修理一座核电站或使用标枪导弹发射器来杀死一只蚊子:(感谢您的帮助,无论如何:) – Spook 2012-07-22 18:56:27

0

在SWT 4.2,并有可能在早期版本(虽然我没有检查),类TreeItemWidget一个子类,WidgetsetData(Object o)getData()。您可以使用它将任意的应用程序特定数据附加到TreeItem实例。

4

这很简单。

TreeItem treeItem = new TreeItem(tree, SWT.NONE); 

treeItem.setData("key", obj); 

获取数据时:

Object obj = treeItem.getData("key");