【问题标题】:How to attach data to TreeItem in SWT/Java?如何在 SWT/Java 中将数据附加到 TreeItem?
【发布时间】:2012-07-22 10:45:13
【问题描述】:

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

如何将数据附加到 TreeItem?

【问题讨论】:

    标签: java tree swt


    【解决方案1】:

    这很简单。

    TreeItem treeItem = new TreeItem(tree, SWT.NONE);
    
    treeItem.setData("key", obj);
    

    获取数据时:

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

    【讨论】:

      【解决方案2】:

      答案是:使用纯 SWT 你不能。
      标准小部件工具包只处理小部件、它们的层次结构和视觉表示。将数据绑定到小部件是构建在 SWT 之上的更高级的 JFace 框架(尤其是它的数据绑定工具)的主题。您需要一些时间来掌握它,但因此您获得了 Eclipse 平台的强大功能。它使您能够将模型绑定到视图,即使是双向
      (→ 对模型对象的更改会立即反映在 UI 上,反之亦然)。
      目前,您必须保留一个单独的项目列表,并且需要使用索引。

      【讨论】:

      • 我明白了。我希望编写非常简单的应用程序,我真的不想考虑模型并将表示与逻辑联系起来。是否有一个更简单的 GUI 工具包,它允许这样的操作?或者我可以 - 例如 - 从 TreeItem 派生并添加必填字段吗?我的问题有一个非常简单的解决方案吗?
      • 使用索引是最简单的方法。 The documentation 明确声明它不允许从 TreeItem 派生。我只在表面上了解 Swing,但 Java 教程中的 How to Use Trees 部分似乎是在 Swing 中处理树的好资源。
      • 我觉得要么用一把扳手来修理核电站,要么用标枪导弹发射器杀死蚊子 :( 无论如何谢谢你的帮助 :)
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-11
        • 2022-01-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多