JTree: Может кто-нибудь понять, что не так с этим Кодексом?
Я занимаюсь разработкой небольшого настольного приложения в Net Beans. Я перетащить JTree
на моем JFrame
и теперь я хочу заполнить иерархию узлов этого этого JTree
динамически. Для этого я написал метод, который возвращает мне DefaultMutableTreeNode
объект. Теперь я снова создаю дерево с этим объектом, но дерево по-прежнему показывает старые (по умолчанию) узлы:
DefaultMutableTreeNode root = createJTreeNodes();
jTree1 = new JTree(root);
jTree1.repaint();
jTree1.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
Может ли кто-нибудь подсказать, что мне нужно изменить, чтобы динамически заполнять дерево?
2 ответа
Может ли кто-нибудь подсказать, что мне нужно изменить, чтобы динамически заполнять дерево?
Пара разных вариантов:
DefaultTreeModel model = (DefaultTreeModel)tree.getModel();
DefaultMutableTreeNode root = (DefaultMutableTreeNode)model.getRoot();
root.add(new DefaultMutableTreeNode("another_child"));
model.reload(root);
или же
DefaultTreeModel model = (DefaultTreeModel) tree.getModel();
DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getRoot();
model.insertNodeInto(new DefaultMutableTreeNode("another_child"), root, root.getChildCount());
Сначала вам нужно удалить все узлы в JTree, которые по умолчанию добавляются сетевыми компонентами.
DefaultTreeModel model=(DefaultTreeModel)jTree1.getModel();
model.setRoot(null);
Теперь создайте новый корень и добавьте все элементы, которые вы хотите, и используйте приведенный выше код для установки нового корня.