我有一个DefaultTreeModel
,其中包含DefaultMutableTreeNode
的子类。我只重写isLeaf()
以始终返回true
,因为我在展开节点时懒洋洋地加载子节点。然后,当节点折叠时,我删除子节点(触发正确的treeNodesRemoved
事件),因为我已从服务器的更新中取消订阅。
问题是,在用户折叠节点并删除子节点后,愚蠢的小扩展圆消失(但单击该区域仍然可以扩展节点)。如何在删除子项后始终显示扩展控件?
相关:Add 'expand' button to JTree node that has no children?。添加假孩子是唯一的方法吗?
答案 0 :(得分:0)
我这样做的方法是在删除子项时添加假孩子和扩展侦听器。当我收到有关假孩子的节点将要扩展的通知时,我会用假装的实际孩子替换假孩子。
这样节点总是有子节点,并且始终显示扩展控件