我已经使用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导致所有行都取消选择,然后用户选择了该行。
答案 0 :(得分:1)
您可以关闭树的重绘,直到完成选择设置为止,这将减少闪烁:
checkboxTreeViewer.getControl().setRedraw(false);
checkboxTreeViewer.setSelection(....);
checkboxTreeViewer.getControl().setRedraw(true);