gpt4 book ai didi

java - 获取 JTree 节点的正确行位置

转载 作者:行者123 更新时间:2023-12-02 03:07:23 25 4
gpt4 key购买 nike

我正在使用Java的swing的JTree,并且需要在其路径中找到所选节点的适当的行索引。例如,当我选择下图中的Polygon 2时,

enter image description here

-并使用这段代码,

tree.getRowForPath(/*path of polygon node*/);

-我得到值2,这是正确的。但是,当我选择Polygon 3时,我得到值6。这是因为在找到合适的节点时,它会将Polygon 2展开的节点计入计数。我不希望这样,因为当选择 Polygon 3 时,我需要返回值 3,无论之前的任何节点是否展开。

我想到循环遍历所有节点,查找哪些节点位于所选行索引之前,查看它们是否已展开,并计算它们包含的节点数量。然后将其添加到从上述方法返回的行中。

问题是我不知道如何解决这个问题。我尝试了一些意大利面条代码,但我怀疑这是否有用。

感谢任何帮助。

最佳答案

这是一个示例,您想要什么(如果我正确理解您的问题),但 @MadProgrammer 的解决方案是首选方式。

public static int indexInParentForPath(JTree aTree, TreePath path) {
Object p = null;
Object parent = null;
for (int i = 0; i < path.getPathCount(); i++) {
if (path.getPathComponent(i).toString().contains("Polygon")) {
p = path.getPathComponent(i);
parent = i > 0 ? path.getPathComponent(i - 1) : null;
break;
}
}
if (p != null) {
return parent == null ? 0 : aTree.getModel().getIndexOfChild(parent, p);
}
return -1;
}

关于java - 获取 JTree 节点的正确行位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41562822/

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