我在Swing面板中显示了一个大的JTree。我已经实现了一些从DefaultMutableNode扩展的节点,它们动态地计算它们的子节点,并且一切运行良好。
在某些情况下(具体来说,当扩展节点只有一个子节点时),我希望JTree在使用单击expand元素时扩展多个节点(只要有一个子节点,递归扩展子节点) ,也许是一些限制。
例如,如果我有以下树:
A
- B
- B2
- B3
- B4a
- B4b
- C
- D
并且用户单击以展开B节点,我想要B B2,并立即扩展B3节点。
答案 0 :(得分:3)
JTree
已
public void addTreeWillExpandListener(TreeWillExpandListener tel)
所以你应该实现接口
public interface TreeWillExpandListener extends EventListener {
/**
* Invoked whenever a node in the tree is about to be expanded.
*/
public void treeWillExpand(TreeExpansionEvent event) throws ExpandVetoException;
/**
* Invoked whenever a node in the tree is about to be collapsed.
*/
public void treeWillCollapse(TreeExpansionEvent event) throws ExpandVetoException;
}
在treeWillExpand
中检查事件的TreePath
是否正确。如果路径中的最后一个Node
只有一个孩子展开它。