【问题标题】:Dynamically add nodes in an JTree在 JTree 中动态添加节点
【发布时间】:2017-05-05 19:39:13
【问题描述】:

我在将节点动态添加到我的 JTree 时遇到了问题。

我通过 json 格式的 RestAPI 接收我的 JTree 信息。 我需要的信息是文件夹 ID 和文件夹名称。

folderID结构是这样的:

1
1.1
6.8
7.1.1.1
1.2
etc.

所以我需要通过我的文件夹ID 点来定义我的节点级别。 我搜索了一些代码,找到了这个。

Dynamically add nodes in a JTree

但是当我实现代码时,我收到一条错误消息:root 无法解析为变量

for(String s:list){
            String[] substr=s.split("\\.");
            String parent=substr[0];
            for(int i=1;i<substr.length-1;i++){
                parent=parent+ "." + substr[i];
            }
            DefaultMutableTreeNode node=null;
            node=findparentnode(parent,**root**);


            if(node==null)
                **root**.add(new DefaultMutableTreeNode(s));
            else
                node.add(new DefaultMutableTreeNode(s));

        }

您能帮我找到解决问题的方法吗?

【问题讨论】:

    标签: java arrays dynamic jtree defaultmutabletreenode


    【解决方案1】:

    你必须先定义根:

    DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode("root")
    JTree tree = new JTree(rootNode);
    

    然后你就可以开始在JTree添加节点了,通过向根节点添加节点。

    【讨论】:

    • 另外 * *root * * 包含操作符 * 并且不会编译
    • 我已经添加了它,但我得到了另一个错误:无法从 Main 类型中对非静态方法 findparentnode(String, DefaultMutableTreeNode) 进行静态引用
    • 作为快速修复,将 findparentnode 设为静态。根据你发布的代码,我不能给你任何其他建议,因为我不知道你班上的其他人
    • @JEY 操作员 * 我有 inplementet 向您展示我的问题的位置。
    • 现在我得到了我的树,但结构不正确。例如,我将 6.8 作为主文件夹。 6.8应该是主文件夹的节点 6.有什么解决办法?
    猜你喜欢
    • 2012-10-04
    • 2012-09-01
    • 2012-02-22
    • 1970-01-01
    • 1970-01-01
    • 2011-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多