Java-更新JTree

Pup*_*ppy 3 java swing jtree

我有一个JTree,我用它来显示一些(不出所料)的分层数据.规范的一部分是用户可以更改数据源(仅仅是在文件之间).现在,当发生这种情况时,我可以毫无问题地重建数据和树节点.但是,我在让树更新更改时遇到很大困难.我尝试从它的滚动窗格中删除它并替换为新的JTree,但我没有看到任何这样的.我试过从JTree中删除所有内容并没有看到任何影响.

如何在构建之后使JTree显示更改?
Ninjedit:是的,我确实调用了updateUI().

另一个编辑:我还想用我的新数据替换树的当前数据.但是,我没有看到任何方法将采用我构造的DefaultMutableTreeNode.即使我只删除了JTree并在其上调用了包含ScrollPane的updateUI,也没有任何反应.或者,如果我使用重绘.

Nat*_* W. 5

可能是正确的事件(JTree内部事件)没有被触发.例如,您可以使用node.add(...)或甚至更好地添加节点model.insertNodeInto(...)(假设您正在使用DefaultTreeModel).在这种情况下,后一种方法是首选方法,因为它将触发将导致视图(JTree)正确更新的适当事件.您的问题可能不是重绘UI,而是实际上通知视图模型已更改.
因此,我建议您查看如何动态修改JTree,如果可能的话,我建议DefaultTreeModel您使用模型来驱动视图.

只是为了确保,您已经阅读了Sun JTree教程,对吗?