0

我在视图中有一个树查看器。我已经实现了树内容提供程序的侦听器。当某些数据发生变化时,会通知树。但是当我试图刷新我的 treeviewer 时,会出现一条错误消息并显示树已被处理。我的刷新动作有什么问题,为什么树会被处理掉。

这是我的代码片段。

getChildren()
{
     resource.addListener(this);
}

public void dataChangeListener(changeddata)
{
     tree.refresh(changedata,true); // Tree shows as disposed.
}

问候, 吉里什

4

1 回答 1

3

UI 的所有更新都需要在 UI 线程中完成。您可以使用以下代码执行此操作。您还应该在调用刷新之前检查树是否已被释放。

    Display.getDefault().asyncExec(new Runnable() {
        @Override
        public void run() {
            if (!tree.getTree().isDisposed()) {
                tree.refresh(changedData, true);
            }
        }
    });
于 2012-07-03T08:17:36.620 回答