繁体   English   中英

在java GUI中更新JTree

[英]updating JTree in java GUI

我在GUI中使用了JTree并将其添加到JFrame中。 当我想更新它并在程序的另一部分中更改它的节点时(当程序正在运行时,作为执行的操作)我尝试添加新节点,或者删除节点; 但我的界面不会改变。 请建议我一个解决方案。

问候

除了insertNodeInto建议,您还可以使用:

DefaultTreeModel model = (DefaultTreeModel)tree.getModel();
DefaultMutableTreeNode root = (DefaultMutableTreeNode)model.getRoot();
root.add(new DefaultMutableTreeNode("another_child"));
model.reload(root);

您需要确保在更新模型后,指示它触发事件以使任何已注册的侦听器得到事件通知。 其中一个听众将是JTree ,一旦收到活动,它将重新粉刷。

例如, DefaultTreeModel包含以下方法:

nodeChanged nodesChanged nodeStructureChanged nodesWereInserted nodesWereRemoved

此外,与所有Swing编程一样,您需要确保在Event Dispatch Thread上更新模型。

你是说GUI方面没有显示你的变化? 你应该看看int repaint()revalidate().

这里有一个很好的描述何时调用哪一个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM