我在视图中有一个树查看器。我有一个实现了树内容提供者的监听器。当某些数据发生更改时,会通知树。但是当我试图刷新我的树形图时,会出现一条错误消息并显示树已被丢弃。什么是我的清新行动的问题以及为什么树被处置。
这是我的代码片段。
getChildren()
{
resource.addListener(this);
}
public void dataChangeListener(changeddata)
{
tree.refresh(changedata,true); // Tree shows as disposed.
}
此致 吉里什
答案 0 :(得分:3)
UI的所有更新都需要在UI线程中完成。您可以使用以下代码执行此操作。您还应该在调用刷新之前检查树是否已被处理。
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
if (!tree.getTree().isDisposed()) {
tree.refresh(changedData, true);
}
}
});