当前位置: 首页 > 知识库问答 >
问题:

如何以编程方式在jTree子级上设置选择

邹祺然
2023-03-14

我已经通读了很多问题,但还没有找到确切的答案。我试图在jTree上设置选择,试图为我的Java项目创建一种API。我可以用myTree轻松地在父节点上设置选择。选举(1);

子节点上的任何叶子都有问题。我有一个walk函数,我正在其中寻找一个特定的字符串。当我用我正在寻找的字符串到达节点时,我设法返回了一个Object[]。但我不能把它转换成树形路径来使用myTree。设置选择路径(路径)。有人能帮忙吗?我很感激。

//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;
    }

共有1个答案

丁沛
2023-03-14

因此,解决方案很简单。我只需要用和对象数组创建一个新的树路径(我没有这么做)。

所以它看起来像:

TreeModel model = jTree1.getModel();
Object[] getNode = Walk(model, "sports", "basketball");
TreePath tPath = new TreePath(getNode);
jTree1.setSelectionPath(tPath);
 类似资料:
  • 问题内容: 我的问题很简单 如何以编程方式设置我的按钮layout_gravity? 我在互联网上找到了它,但它只是抛出了一个Nullpointer异常: 有什么办法吗? 问题答案: Java Kotlin 有关重力值以及如何设置重力,请检查“重力”。 基本上,您应该选择依赖于父项。可以是等等。

  • 问题内容: 我正在动态创建按钮。我首先使用XML设置了样式,然后尝试使用下面的XML使其具有程序性。 这是我到目前为止所拥有的。除了可绘制对象,我可以做所有事情。 问题答案: 你可以使用该方法执行此操作。请参阅此处的示例。我在不使用的情况下使用了它,并且效果很好。你可以尝试任何一种方式。 更新:如果链接断开,请在此处复制代码 要么 要么

  • 问题内容: 这个问题类似于: jsf:在UI中绑定到inputtext的integer属性在提交时设置为零 但是我对解决方案并不完全满意。上下文是相同的:我有一个Web表单,需要一个Integer值。如果文本框为空,我希望我的Integer字段为“null”,但是EL Parser会自动将我的id字段设置为“ 0”。 我可以通过在本地Tomcat VM中设置JVM参数来解决此问题: -Dorg.a

  • 问题内容: Linux提供了stime(2)调用来设置系统时间。但是,虽然这将更新系统时间,但不会将BIOS硬件时钟设置为与新系统时间匹配。 Linux系统通常会在关机时并定期将硬件时钟与系统时间同步。但是,如果在这些自动同步之一之前重启机器,则重新启动机器的时间将不正确。 设置系统时间时,如何确保更新硬件时钟? 问题答案: 查看rtc手册页以获取详细信息,但是如果您以root用户身份登录,则如下

  • 问题内容: 我想将背景设置为。使用XML时没有问题(有效) …但是我必须在Java代码中执行此操作,因此我已经尝试过 …而且它不起作用,实际上我在第二行得到了一个。因此,在尝试了这种变体之后,我认为资源是一种颜色。 这个没有启动异常,但是…不起作用(按下时背景没有变化,但是按下时状态必须改变)…有什么建议吗? 问题答案: 您可以使用这种方式。

  • 在prestashop的自定义模块中,如何为自己的自定义模块的特殊页面(前端控制器)定义钩子异常? 我知道我可以在模块的方法中注册挂钩,例如