如何重置JTree?

时间:2011-04-18 09:10:55

标签: java swing jtree

我目前正在使用JTree,更确切地说是使用CheckBoxTree,这是一个由JIDE创建的继承类。我需要找到一种重置树的方法,意思是:

  • 清除选择
  • 删除节点

我尝试取消设置Tree变量,treeModel并刷新UI,但它不起作用。

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

单独取消设置变量无济于事 - 所有这一切都会丢失对JTree对象的引用副本。

你需要做什么删除包含对象保存到JTree的引用 - 我假设你有某种GridContainer或Layout对象 - 从父ojbect中删除它,然后在该对象上调用updateUI。

答案 1 :(得分:1)

为了擦除节点,您应该获取树模型并清除它或设置新的树模型。

要清除选择,请在树上调用clearSelection()(请注意setModel(...)已调用clearSelection()所以如果您想同时执行这两项操作,只需设置新模型并重新绘制)。

答案 2 :(得分:0)

只需在每次迭代开始时重建树。

这种东西

RootNode=new CheckBoxTreeNode("root");
CheckBoxTree= new CheckBoxTree(RootNode);

会做到这一点。无需调用updateUI。希望这有帮助。