Java- 更新 JTree

标签 java swing jtree

我有一个 JTree,我用它来显示一些(意料之中的)分层数据。规范的一部分是用户可以更改数据源(atm 它只是在文件之间)。现在,当发生这种情况时,我可以毫无问题地重建数据和树节点。但是,我很难让树更新更改。我尝试将它从它的滚动 Pane 中删除并替换为新的 JTree,但我没有看到任何这样的东西。我已尝试从 JTree 中删除所有内容,但没有看到任何效果。

JTree构造完成后如何显示变化?
Ninjedit:是的,我确实调用了 updateUI()。

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

最佳答案

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

为了确保您已通读 the Sun JTree tutorials ,对吧?

关于Java- 更新 JTree,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3460313/

相关文章:

java - GridView.getItemAtPosition 始终为 null(但列表显示项目)

java - BufferReader程序逐行倒序打印输入文件(文本文件),但它也倒序打印单词

java - 如何改变JFrame中标题栏的颜色?

java - Netbeans 项目,JFrames 从主 JFrame 运行,关闭项目中的所有 JFrame

java - 刷新JTree而不崩溃

java - JTree有时不扩展

java - 在 jTree 上创建右键单击弹出菜单

java - Storm 发射整数数组并检索它

java - 如何在 UI 中显示字符限制以及为用户数字化了多少?安卓Java

java - JComboBox 是否有 postActionEvent?