我正在Net Bean中开发一个小型桌面应用程序。我将JTree
拖放到我的JFrame
上,现在我想动态填充此JTree
的节点层次结构。为此,我写了一个返回DefaultMutableTreeNode
对象的方法。现在我再次使用此对象创建树,但树仍显示旧(默认)节点:
DefaultMutableTreeNode root = createJTreeNodes();
jTree1 = new JTree(root);
jTree1.repaint();
jTree1.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
是否可以指导我需要更改的内容,以便动态填充树?
答案 0 :(得分:3)
是否可以指导我需要更改的内容,以便动态填充树?
有两种不同的选择:
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());
答案 1 :(得分:0)
首先,您需要删除JTree中默认添加的所有节点。
DefaultTreeModel model=(DefaultTreeModel)jTree1.getModel();
model.setRoot(null);
现在创建新根并添加所需的所有元素,并使用上面的代码设置新根。