Выберите все узлы флажков в jtree - PullRequest
3 голосов
/ 02 февраля 2012

У меня есть флажок сборки дерева узлов на основе именованного вектора.И у меня есть кнопка под названием выбрать все.Когда я нажимаю кнопку «Выбрать все», мне нужно выбрать все узлы в дереве узлов чекбокса.

Код, который я использовал:

 for (CheckBoxNode rowNode: CheckBoxNodeTree. checkBoxCoulmn) 
{
   if(rowNode instanceof CheckBoxNode)
   rowNode.setSelected((true));
}

Здесь checkBoxColumn представляет собой массив, содержащийвсе узлы дерева как (Node, isSelected).

Но когда я это делаю, с деревом ничего не происходит.

1 Ответ

3 голосов
/ 02 февраля 2012

Я сделал это, приведя узел дерева к изменяемому узлу дерева по умолчанию и получив перечисление потомков.Затем вы можете перебирать их и устанавливать setSelected (true).Ваш путь может столкнуться с проблемами с многопоточностью или одновременными изменениями, если пользователь несколько раз щелкает.

Enumeration<TreeNode> children = ((DefaultMutableTreeNode) node).breadthFirstEnumeration();
 while (children.hasMoreElements()) {
     TreeNode child = children.nextElement();
     Object currentNode = ((DefaultMutableTreeNode) child).getUserObject();
     //cast your currentNode to the check box and set selected or unselected.
 }

Кроме того, вы делаете это в потоке обработки событий?Если нет, то это может быть причиной того, что вы не видите никаких обновлений на экране.

...