Динамически добавлять узлы в JTree

у меня проблема с динамическим добавлением узлов в мой JTree.

Я получаю информацию о JTree через RestAPI в формате json. Информация, которая мне нужна, это идентификатор папки и имя папки.

Структура идентификатора папки выглядит следующим образом:

1
1.1
6.8
7.1.1.1
1.2
etc.

Поэтому мне нужно определить уровень моего узла по точкам моих идентификаторов папок. Я искал какой-то код и нашел этот.

Динамическое добавление узлов в JTree

Но когда я реализую код, я получаю сообщение об ошибке: корень не может быть преобразован в переменную

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));

        }

Не могли бы вы помочь мне найти решение моей проблемы?


person Boki    schedule 20.12.2016    source источник


Ответы (1)


Сначала вы должны определить корень:

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

Затем вы можете начать добавлять узлы к JTree, добавляя узлы к корневому узлу.

person user7291698    schedule 20.12.2016
comment
кроме того * *root * * содержит оператор * и не компилируется - person JEY; 20.12.2016
comment
я добавил его, но получаю другую ошибку: невозможно сделать статическую ссылку на нестатический метод findparentnode (String, DefaultMutableTreeNode) из типа Main - person Boki; 20.12.2016
comment
в качестве быстрого исправления сделайте findparentnode статическим. на основе кода, который вы разместили, я не могу дать вам никакого другого совета, потому что я не знаю остальной части вашего класса - person user7291698; 20.12.2016
comment
@JEY оператор * у меня есть инструмент, чтобы показать вам положение моей проблемы. - person Boki; 20.12.2016
comment
теперь я получаю свое дерево, но структура неверна. я получаю, например, 6.8 в качестве основной папки. 6.8 должен быть узлом основной папки 6. Любые решения? - person Boki; 20.12.2016