Java更新JTree
作者:互联网
我有一个JTree,我正在使用它显示一些(毫无疑问)分层数据.规范的一部分是用户可以更改数据源(atm只是在文件之间).现在,当发生这种情况时,我可以毫无问题地重建数据和树节点.但是,我很难在树上更新更改.我尝试将其从其滚动窗格中删除,并替换为新的JTree,但是我没有看到任何此类消息.我尝试从JTree中删除所有内容,但没有看到任何效果.
构造后,如何使JTree显示更改?
Ninjedit:是的,我确实调用过updateUI().
另一个编辑:
我还想用新数据替换树的当前数据.但是,我没有看到任何采用我构造的DefaultMutableTreeNode的方法.即使我只是删除JTree并在包含ScrollPane的JTree上调用updateUI,也不会发生任何事情.或者,如果我使用重绘.
解决方法:
可能是没有触发适当的事件(JTree内部事件).例如,您可以使用node.add(…)或更好的model.insertNodeInto(…)添加节点(假设您使用的是DefaultTreeModel).在这种情况下,后一种方法是首选方法,因为它将触发适当的事件,这些事件将导致视图(JTree)正确更新.您的问题可能与重新绘制UI无关,而实际上是在通知视图模型已更改.
因此,我建议您研究如何动态修改JTree,如果可能的话,我建议使用DefaultTreeModel作为模型来驱动视图.
只是为了确保您已阅读the Sun JTree tutorials,对吗?
标签:jtree,swing,java 来源: https://codeday.me/bug/20191023/1916460.html