gpt4 book ai didi

java - 使用 NatTable 实现树

转载 作者:行者123 更新时间:2023-11-30 02:56:48 25 4
gpt4 key购买 nike

我尝试从 JFace TreeViewer 切换到 NatTable。不幸的是我没有找到很多关于使用 NatTable 实现树的文档。所以我有一些问题

  1. 在 TreeViewer 中,我使用 setInput() 来提供新输入。我怎样才能用 NatTable 达到同样的效果?在底层数据源 List 上调用 clear()addAll() 是否是正确的方法? (我使用 GlazedLists)

  2. 我使用描述的 clear()/addAll() 方法在查询数据库后传递新数据。当树的扩展状态丢失后,所有节点都会折叠。我使用 JFace TreeViewergetExpandedElements()/setExpandedElements() 以保持展开状态。 NatTable 中有类似的东西吗?

  3. 是否可以仅在单击父节点时加载子树节点?我无法预先构建所有树数据,因为我可以在其中包含循环(严格来说,我的数据并不是真正的树,但像树一样显示它很方便)

UPD:不确定我是否应该在这里提问或创建单独的问题

  • 我在排序时遇到问题。我在这里找到了类似的讨论https://www.eclipse.org/forums/index.php?t=msg&th=489524但我还是没有深刻的理解。
  • 我的问题:对“树”列以外的任何列进行排序后,子节点可能会移动到无效的父节点。尽管元素的顺序在层次结构的所有级别上都是正确的。我使用 SortableTreeComparator 并使用我的自定义比较器作为 treeComparator(而不是示例中的 GlazedLists.beanPropertyComparator)。这里可能出了什么问题?

    最佳答案

    首先,您可以查看NatTable examples并查看树的实现方式。

    1. 是的,数据源列表是放置和管理数据对象的地方。
    2. 为了管理展开状态,您可以使用 ca.odell.glazedlists.TreeList.ExpansionModel,它是用作输入的 TreeList 的一部分。
    3. 据我所知,NatTable 的主要优点之一是能够按需加载数据(仅当数据应该可见时)。这是默认行为。

    关于java - 使用 NatTable 实现树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37030102/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com