Java SWT:删除树项的选择

Ale*_* P. 1 java tree swt


我需要在Java SWT中为树创建一个弹出菜单.但是,只有在没有选择任何项目时(当我单击TreeViewer的空白区域时),才会弹出菜单.如果我现在选择树的一个项目,我不能再次取消选择它.TreeViewer位于Composite内部.
我的第一个想法是添加一个MouseListener来检查是否没有选择Items并调用deselectAll(),但event.getSource()只返回树.
在(右)单击空格时如何删除项目选择的任何想法?

Aar*_*lla 5

通常,您可以通过单击该项来取消选择.

另一种选择是为鼠标点击注册一个监听器,并使用事件位置来定位树项.如果返回null,则可以调用deselectAll().

但是,你怎么能得到TreeViewerTree?简单:将引用存储data在树的属性中.然后,您可以在事件处理程序中使用此代码:

TreeViewer view = (TreeViewer) event.getSource().getData();
Run Code Online (Sandbox Code Playgroud)