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

时间:2017-12-25 12:30:30

标签: java swing jtree defaulttreemodel

您好我在更改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时,行计数也会更新,并且会扩展错误的行。提前谢谢您的提示。

1 个答案:

答案 0 :(得分:0)

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

DefaultTreeModel model;
DefaultMutableTreeNode node;
//Initialize or change model
model.reload(node);
enter code here