Позволяя Пользователю добавлять Узлы в JTree, узлы не появляются, если родительский объект КОГДА-ЛИБО был расширен - PullRequest
2 голосов
/ 21 июня 2010

У меня проблема со вставкой узлов в JTree. По сути, пользователь щелкает правой кнопкой мыши по родительскому узлу, вызывая список возможных дочерних элементов для вставки. Они выбирают тот, который вставлен как дочерний узел выбранного узла. Все это прекрасно работает, когда родительский узел никогда не раскрывался. Однако, если родительский узел узла, который пользователь пытается вставить, когда-либо был расширен, пользовательский интерфейс не обновляется соответствующим образом.

Вот соответствующие строки кода: Создание JTree: this.tree = new JTree(ctlr.getRulesTableTreeModel().getModel()); Метод getModel () возвращает DefaultTreeModel моделирует исходную древовидную иерархию.

Вставка узла: this.treeModel.insertNodeInto(child, parent, index);

Извините, что не дал больше кода, но этот проект имеет длину 3000 строк, я пытаюсь выделить соответствующие строки.

1 Ответ

2 голосов
/ 21 июня 2010

вам нужно обновить модель:

в соответствии с API дерева модели по умолчанию:

http://java.sun.com/javase/6/docs/api/javax/swing/tree/DefaultTreeModel.html

после добавления узла, затем вам нужно сообщитьмодель, что узел был добавлен;который скажет пользовательскому интерфейсу обновиться правильно.

например:

nodesWereInserted(TreeNode node, int[] childIndices)
          Invoke this method after you've inserted some TreeNodes into node.p
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...