在向节点添加元素时保存JTree的扩展状态

问题描述 投票:0回答:1

您好我在更改DefaultTreeModel时有关保存扩展状态的问题。目前我有一个jTree,它看起来像这样:enter image description here

如果我从左侧JList中选择一个项目并从右侧Jtree中选择一个TestGr并单击“添加测试用例”按钮,它会将所选项目添加到DefaultTreeModel。这样做会使树崩溃:enter image description here

我想以某种方式保存以前的扩展状态,只需更新树以显示新添加的元素,例如:enter image description here

我的目标是保存以前可能的扩展状态,当我向TestGr添加元素时,扩展的所有内容都应保持扩展并使用新元素更新自身。有谁知道我怎么能实现这个目标?我已经尝试过来自store state/expanded nodes of a jtree for restoring state的解决方案,但它不适合,因为当我更新我的DefaultTreeModel时,行计数也会更新并且它会扩展错误的行。提前谢谢您的提示。

java swing jtree defaulttreemodel
1个回答
0
投票

解决方案是使用DefaultTreeModel重载方法,但是针对特定节点。例如:

DefaultTreeModel model;
DefaultMutableTreeNode node;
//Initialize or change model
model.reload(node);
enter code here
© www.soinside.com 2019 - 2024. All rights reserved.