JTree不会更新

时间:2015-05-14 19:35:27

标签: java swing jtree

我正在尝试将节点添加到我的JTree中。我这样做是这样的:

    DefaultMutableTreeNode root = (DefaultMutableTreeNode) tree.getModel().getRoot();
    DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(event.getObjectThatHasChanged());
    root.add(newNode);
    ((DefaultTreeModel) tree.getModel()).reload();

但是,树本身不会更新。我已经读过posts reload()是你应该调用的,但没有效果。另请注意,这是在美国东部时间召开的。有什么想法吗?

编辑:

我尝试过这种方法:

    DefaultMutableTreeNode root = (DefaultMutableTreeNode) tree.getModel().getRoot();
    DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(event.getObjectThatHasChanged());
    ((DefaultTreeModel) tree.getModel()).
            insertNodeInto(newNode, root, root.getChildCount() - 1);

仍然没有去。但是,当我关闭程序并重新打开它时,新节点就在那里。 (我坚持我的数据)。

1 个答案:

答案 0 :(得分:3)

使用DefaultTreeModel insertNodeInto 方法将节点添加到JTree。引用API

  

然后,这将消息nodesWereInserted以创建适当的事件。这是添加子项的首选方法,因为它将创建适当的事件。

例如:

((DefaultTreeModel) tree.getModel()).insertNodeInto(newNode, root, 0);//inserts at beginning
//((DefaultTreeModel) tree.getModel()).insertNodeInto(newNode, root, root.getChildCount() - 1);//inserts at end