首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更新JTree元素

如何更新JTree元素
EN

Stack Overflow用户
提问于 2010-04-28 23:25:01
回答 5查看 16.2K关注 0票数 1

我使用JTree的TreeNode扩展DefaultMutableTreeNode.when我添加了新的节点,我不能更新JTree.Any帮助将不胜感激

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-04-28 23:30:39

仅添加到节点是不够的,需要通知树。这样做的正确方法是让模型负责添加/删除节点,因为它会在此过程中正确地通知Tree。

对于DefaultTreeModel (如果您还没有创建自己的TreeModel,应该在JTree中使用它),您可以使用insertNodeInto(MutableTreeNode newChild, MutableTreeNode parent, int index)方法。

票数 5
EN

Stack Overflow用户

发布于 2010-07-08 20:35:57

如果您使用DefaultTreeModel,请尝试调用它的reload()方法。

代码语言:javascript
复制
DefaultTreeModel model = (DefaultTreeModel) tree.getModel();
model.reload();

//or... model.reload(nodeUpdatedByYou);

永远不要使用tree.updateUI(),因为这是一个外观操作(尽管它可以工作)。

票数 6
EN

Stack Overflow用户

发布于 2011-01-20 06:21:30

实际上,重新加载父节点就足够了。在内部,

代码语言:javascript
复制
public void reload()

正在使用

代码语言:javascript
复制
public void reload(TreeNode node)

但是使用root作为它的参数,所以,除非您正在更新直接root的叶子,否则最好使用更细粒度的版本。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2730851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档