SWT JFace:如何使TableViewer始终选择一行?

时间:2011-11-03 08:49:59

标签: java eclipse swt jface

我是JFace的新蜜蜂。

我的表查看器分配代码是:

viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL
| SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);

我创建了一个TableCursor来连续选择不同的单元格。

Select a row in the table

然后我发现允许用户“不做任何选择”是非常尴尬的。 : - (

Select nothing in the table, very ugly right?

我想知道是否有要设置的SWT属性或某些编码解决方案强制用户总是选择一行。

1 个答案:

答案 0 :(得分:3)

您必须手动取消取消选择,请参阅以下代码段:

viewer.addSelectionChangedListener(new ISelectionChangedListener() {

    private boolean update;

    private ISelection lastSelection;

    @Override
    public void selectionChanged(SelectionChangedEvent event) {
        if (event.getSelection().isEmpty() && !update) {
            update = true;
            v.setSelection(lastSelection);
            update = false;
        } else if (!event.getSelection().isEmpty()) {
            lastSelection = event.getSelection();
        }

    }
});