gpt4 book ai didi

java - 让用户将节点添加到 JTree,如果父级曾经被扩展,则节点不会出现

转载 作者:行者123 更新时间:2023-11-30 09:54:54 30 4
gpt4 key购买 nike

我在 JTree 中插入节点时遇到问题。基本上,用户右键单击父节点,弹出可能要插入的子节点的列表。他们选择一个作为所选节点的子节点插入。当父节点从未展开时,这一切都很好用。但是,如果用户尝试插入的节点的父节点曾经被展开,UI 似乎不会相应地更新。

以下是相关的代码行: 创建 JTree:this.tree = new JTree(ctlr.getRulesTableTreeModel().getModel()); getModel() 方法返回一个 DefaultTreeModel,对原始树层次结构进行建模。

插入节点:this.treeModel.insertNodeInto(child, parent, index);

很抱歉没有给出更多的代码,但是这个项目有 3000 行那么长,我正在尝试挑选出相关的行。

最佳答案

您需要更新模型:

根据默认树模型 api:

http://java.sun.com/javase/6/docs/api/javax/swing/tree/DefaultTreeModel.html

添加节点后,需要告诉模型节点已添加;这将告诉用户界面正确刷新。

例如:

nodesWereInserted(TreeNode node, int[] childIndices)
Invoke this method after you've inserted some TreeNodes into node.p

关于java - 让用户将节点添加到 JTree,如果父级曾经被扩展,则节点不会出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3087130/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com