【问题标题】:Refresh JFace TreeViewer without flicker刷新 JFace TreeViewer 不闪烁
【发布时间】:2015-05-08 16:28:19
【问题描述】:

我已经为编辑器的内容准备了一个大纲视图。 数据显示为 TreeViewer。 但是当我们刷新它时,整棵树都会闪烁。

有什么方法可以在不刷新整棵树的情况下实现树刷新?我想在编辑节点之后刷新所有节点。

【问题讨论】:

    标签: jface


    【解决方案1】:

    使用TreeViewer.refresh(element) 仅刷新“元素”及其子元素。

    如果您只想更新特定元素,您可以使用TreeViewer.update(element, null) 或使用TreeViewer.update(element array, null) 来更新元素数组。这不处理树结构中的更改。

    您也可以使用TreeViewer.add(parentElement, childElement) 告诉查看者一个新的子元素,还有各种remove 方法可以删除元素。

    【讨论】:

    • 更新在我的情况下不起作用,我已经在使用 refresh(element)。我还没有使用 add。所以让我试试看它是如何工作的......谢谢
    • 我不得不根据编辑器中的内容变化用新信息更新大部分节点。因此无法避免多个节点的刷新,但优化后的代码逻辑闪烁并不像以前那样突出。但感谢 greg 的持续支持。
    【解决方案2】:
    treeViewer.getControl().setRedraw(false);
    //Refresh your tree
    treeViewer.getControl().setRedraw(true);
    

    上面的代码可以帮到你!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-13
      • 2012-02-06
      • 1970-01-01
      • 2012-10-30
      • 2017-09-22
      • 2015-10-19
      • 2016-08-14
      • 1970-01-01
      相关资源
      最近更新 更多