在CheckboxTreeViewer上选择多行而不使用'ctrl'按钮

时间:2018-10-29 10:29:15

标签: swt jface

我已经使用JFace库创建了checkboxtreeviewer。我已经如下创建树形查看器

Tree tree = new Tree(parent,SWT.CHECK | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.MULTI);

CheckboxTreeViewer checkboxTreeViewer = new CheckboxTreeViewer(tree);

SWT.MULTI允许我使用'CTRL键选择(突出显示)树的多行。

有没有一种方法可以选择多个行而无需使用ctrl键。我知道的一种方法是使用setSelection()方法,该方法无法使用,因为当用户从一行移到另一行时,这会导致闪烁效果,Tree.java会取消选择所有现有行,然后高亮显示在setSelection方法中调用。

我觉得代码here导致所有行都取消选择,然后用户选择了该行。

1 个答案:

答案 0 :(得分:1)

您可以关闭树的重绘,直到完成选择设置为止,这将减少闪烁:

checkboxTreeViewer.getControl().setRedraw(false);

checkboxTreeViewer.setSelection(....);

checkboxTreeViewer.getControl().setRedraw(true);