gpt4 book ai didi

java - 如何以编程方式设置 jTree 子级的选择

转载 作者:行者123 更新时间:2023-12-02 12:34:40 24 4
gpt4 key购买 nike

我已经阅读了一堆已经提出的问题,但还没有看到可靠的答案。我正在尝试在 jTree 上设置选择,以尝试为我的 Java 项目创建某种 API。我可以轻松地在父节点上设置选择:myTree.setSelection(1);

在处理子节点的任何叶子时遇到问题。我有一个步行功能,我正在寻找其中的特定字符串。当我到达带有我要查找的字符串的节点时,我成功地返回了一个 Object[] 。但我无法将其转换为 Treepath 来使用 myTree.setSelectionPath(path)。有人可以帮忙解决这个问题吗?我很感激。

//My call
TreeModel model = jTree1.getModel();
Object getNode = myWalk(model);
jTree1.setSelectionPath((TreePath) getNode);
//this throw an error stating that Object[] can't be converted to a path.

public Object[] myWalk(TreeModel model, String s, String t){
DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getRoot();
DefaultMutableTreeNode child;
TreeNode[] returnPath = null;
int childrenCount = root.getChildCount();
for(int i = 0; i < childrenCount; i++){
child = (DefaultMutableTreeNode) root.getChildAt(i);
if(child.toString().equals(s)){
System.out.println(child.toString());
int secondChildCount = child.getChildCount();
DefaultMutableTreeNode secondLevelChild;
for(int y = 0; y < secondChildCount; y++){
secondLevelChild = (DefaultMutableTreeNode) child.getChildAt(y);
if(secondLevelChild.toString().equals(t)){
System.out.println(secondLevelChild.toString());
returnPath = secondLevelChild.getPath();
//returnPath = new TreePath(new Object[] {root.toString(), child.toString(), secondLevelChild.toString()});
}
}

}


}
return returnPath;
}

最佳答案

所以解决方案最终很简单。我只需要使用对象数组创建一个新的 TreePath(我没有这样做)。

所以它看起来像:

TreeModel model = jTree1.getModel();
Object[] getNode = Walk(model, "sports", "basketball");
TreePath tPath = new TreePath(getNode);
jTree1.setSelectionPath(tPath);

关于java - 如何以编程方式设置 jTree 子级的选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45177248/

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