【发布时间】:2012-08-28 07:17:51
【问题描述】:
我有一个需要更新 JTree 节点的 Java SE 7 应用程序。从 Oracle 使用此 thread 给出的教程中,没有给出关于如何更新代码上的标签(树上节点的显示文本)的提示。目前我使用DefaultTreeModel 作为我的JTree 的模型和DefaultMutableTreeNode 作为所述树的节点。
为了进一步详细了解我正在开发的应用程序,我正在开发一个聊天工具,让每个帐户的联系人及其可用性状态(在线、离线等)都显示出来。
问题是,如何更新特定节点的显示文本而不(最多)将其从其父节点中删除并将其添加到其指定索引上。喜欢DefaultMutableTreeNode.setText("<new label>")?
更新:2013 年 1 月 20 日
重新定义问题以进行澄清。
【问题讨论】:
-
您应该只从 UI 线程更新您的 JTree - 如果您这样做,则无需同步任何内容。
-
如果JTree可能在
-
如果一切都在同一个线程上执行(应该是这样),那么所有的操作都是顺序的。可能发生的最糟糕的事情是,如果更新过于频繁,它可能会很慢,但更新会一个接一个地运行。
-
是的,但是当我调用
DefaultTreeModel.reload()到我的JTree的模型时,节点崩溃了,我如何更新特定节点而不让任何其他有子节点崩溃?跨度>
标签: java swing jtree defaulttablemodel