我使用Lazy Loading实现了一棵树.第一级节点是在树创建时创建的,其中仅当用户扩展任何特定节点时才创建子节点.
数据来自数据库,我们向数据库发出查询以填充子节点.实现了TreeExpansionListener并使用了treeExpanded方法的重写实现.在扩展时,我删除所选节点的所有子节点,进行数据库查询并将记录作为子节点添加到所选节点.在将任何节点添加到树之前,会向节点添加虚拟子节点.使用DefaultMutableTreeNode.
到目前为止一切顺利,按期望工作正常.
问题1 - 正如你所说,它是每个扩展的数据库调用,所以如果一个节点被折叠并再次展开,我将进行数据库跳转并再次处理...我的想法是如果已经扩展,则不加载节点...
问题2 - 如果我必须进行强制刷新,即重新加载树并保持扩展状态.现在处于工作状态......如何解决上面问题1的问题?
感谢任何帮助.