TreeViewer的setSelection方法使用后,会在树上选中并展开方法参数中对应的节点.但是有时候你发现它只能选中第一级节点,下面的子节点没有办法选中.其实这个方法是没有问题的,它的大概实现算法是:先找到某一个子节点,然后找到它的父节点,把父节点展开,然后又找父节点的父节点,做同样的操作,直到根节点为止,这样你才能看到选中的子节点.所以父节点如果为null,那肯定你是看不到子节点了.而我们很多人在实现ITreeContentProvide的接口的时候,是不实现getParent方法的,因为只要实现了getChildren方法就可以看见一棵树了.包括陈刚的<Eclipse从入门到精通>也是这样.所以在实现treeViewer的时候,最好还是实现getparent方法.其实也不麻烦,在添加一个child的时候,加一句setparent(this)就可以了