JTree:有人可以弄清楚这个代码有什么问题

时间:2011-10-20 19:38:56

标签: java swing netbeans jtree

我正在Net Bean中开发一个小型桌面应用程序。我将JTree拖放到我的JFrame上,现在我想动态填充此JTree的节点层次结构。为此,我写了一个返回DefaultMutableTreeNode对象的方法。现在我再次使用此对象创建树,但树仍显示旧(默认)节点:

DefaultMutableTreeNode root = createJTreeNodes();
jTree1 = new JTree(root);
jTree1.repaint();
jTree1.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);

是否可以指导我需要更改的内容,以便动态填充树?

2 个答案:

答案 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);

现在创建新根并添加所需的所有元素,并使用上面的代码设置新根。