需要实现如下的功能:
当选中树中的某一节点时,
1 、如果该节点是父节点,其下所有子节点应该也被选中,取消选中时亦然 ;
2 、如果该节点是子节点那么选中该节点时,其父节点也应该是被选中状态 ( 父节点下只要有一个子节点处于选中状态这个父节点就应该是选中的,只有当该节点下一个子节点都没有被选中时才是非选中状态 );
3 、如果该节点既是父节点又是子节点那么选中它时,它的所有子节点应同时被选中,其父节点也同时被选中。
(其实只要 1 、 2 两个功能实现了,第 3 个功能是必然的)
具体代码如下:
首先要创建一棵树,建立出子节点,这些此处都省略不计,读者自行创建。
假设我们此处创建了一棵树tree:
然后我们为这棵树添加一个选择监听器SelectionListener:
关键的checkItem函数实现代码: