Добавление нового листа в узел jTree - PullRequest
1 голос
/ 05 сентября 2011

Допустим, у меня есть этот код jTree

    JTree jTree = new JTree() ;
    DefaultMutableTreeNode root = new DefaultMutableTreeNode("root") ;
    jTree.setModel( new DefaultTreeModel(root));

    DefaultMutableTreeNode firstNode = new DefaultMutableTreeNode("first node") ;

Теперь я хочу добавить лист в узел с именем "first node" (который в настоящее время является листом) из места, где переменная firstNodeне доступен.Как это можно сделать?

Очистка: Окей!У меня есть JFrame в классе (расширяет качели), а jTree является частным членом этого класса.Теперь я передаю этот объект класса (как параметр) в другой метод класса, где предполагается заполнение jTree.Но я ничего не мог сделать с этим jTree из другого метода класса.(Конечно, доступ к приватному методу не является моей проблемой :)

Ответы [ 2 ]

5 голосов
/ 05 сентября 2011

Попробуйте:

firstNode.add(new DefaultMutableTreeNode("leaf node"));

ОБНОВЛЕНИЕ: Согласно вашим комментариям, у вас должна быть ссылка на узел, под которым вы хотите добавить новый лист.Если вы отвечаете на событие выбора дерева в дереве, вы можете получить ссылку следующим образом:

DefaultMutableTreeNode firstNode = (DefaultMutableTreeNode)jTree.getSelectionPath().getLastPathComponent();
2 голосов
/ 05 сентября 2011

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

treeModel.insertNodeInto(newChild, parent, index)

В вашем случае я не понимаю, что доступно, а что нет ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...