我使用JTree的TreeNode扩展DefaultMutableTreeNode.when我添加了新的节点,我不能更新JTree.Any帮助将不胜感激
发布于 2010-04-28 23:30:39
仅添加到节点是不够的,需要通知树。这样做的正确方法是让模型负责添加/删除节点,因为它会在此过程中正确地通知Tree。
对于DefaultTreeModel (如果您还没有创建自己的TreeModel,应该在JTree中使用它),您可以使用insertNodeInto(MutableTreeNode newChild, MutableTreeNode parent, int index)方法。
发布于 2010-07-08 20:35:57
如果您使用DefaultTreeModel,请尝试调用它的reload()方法。
DefaultTreeModel model = (DefaultTreeModel) tree.getModel();
model.reload();
//or... model.reload(nodeUpdatedByYou);永远不要使用tree.updateUI(),因为这是一个外观操作(尽管它可以工作)。
发布于 2011-01-20 06:21:30
实际上,重新加载父节点就足够了。在内部,
public void reload()正在使用
public void reload(TreeNode node)但是使用root作为它的参数,所以,除非您正在更新直接root的叶子,否则最好使用更细粒度的版本。
https://stackoverflow.com/questions/2730851
复制相似问题