gpt4 book ai didi

java - 如何使 JXTreeTable 对其顶部元素进行排序

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:53:41 24 4
gpt4 key购买 nike

我知道(我查看了源代码;))JXTreeTable 上的排序已被禁用。

但是,我希望仅根据根节点的直接子节点的值对所有列进行排序。

假设我有这样的结构:

Name       / Date       / File UID
(Root)
|- Mr. X / 1996/10/22 / AE123F6D
|--- File1 / 2012/01/10 / DFC2345Q
|--- File2 / 2012/01/11 / D321FEC6
|- Mrs. Y / 1975/03/03 / G2GF35EZ
|--- File3 / 2012/02/29 / 35GERR32
|--- File4 / 2012/01/22 / LKJY2342
.
.
.

我想要实现的是仅在第一级节点上对 3 列进行排序。假设我想按日期升序对它进行排序,它最终会是这样的:

Name       / Date       / File UID
(Root)
|- Mrs. Y / 1975/03/03 / G2GF35EZ
|--- File3 / 2012/02/29 / 35GERR32
|--- File4 / 2012/01/22 / LKJY2342
|- Mr. X / 1996/10/22 / AE123F6D
|--- File1 / 2012/01/10 / DFC2345Q
|--- File2 / 2012/01/11 / D321FEC6
.
.
.

在我看来,它类似于简单的表格排序(因此解除了为禁用排序而调用的层次限制)。

我看到了 2 种可能性:

  1. 重新启用 JXTable 中可用的排序机制以受益于已经实现的所有内容(排序器,通过单击标题排序,...)并且仅对第一级节点进行排序(因为它们的子级仍然具有同一 parent )。
  2. 实现我需要的基本内容(主要通过单击标题进行排序),在 JXSortableTreeModel 中有一个模型行 ID 列表,我排序并覆盖 convertRowIndexToModel 这将允许(我认为)显示我排序的项目想要。

我最喜欢的当然是第一个,但我不知道如何实现。第一个限制是我不知道如何重新启用排序,因为 JXTreeTable 覆盖了 setSortable() (以及所有相关方法),我不知道如何直接访问 JXTable 中方法的实现(这是一个 Java 问题).我可以简单地复制 JXTreeTable 的代码并删除覆盖,但我认为这不是一个选项。

假设我解决这个问题,我如何将排序限制在第一级节点?即使在查看源代码之后,我也对如何做到这一点一无所知。

对于第二个,我失去了现有代码的所有好处,但我看到了一种实现我想要的东西的实用方法(至少现在,谁知道是否不想过滤所有行的数据?) .

还有别的办法吗?如果不是,我应该选择哪一种解决方案?有什么有见地的评论吗?

非常感谢!

最佳答案

maybe sorting TreeTable following way(s) ,由 aephyr,顺便说一句,这个 Swing Guru 也玩过 Nimbus Look and Feel,包括有趣的 Nimbus 代码

enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here

关于java - 如何使 JXTreeTable 对其顶部元素进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9499533/

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