【发布时间】:2018-05-17 18:41:55
【问题描述】:
您好,我对 SWT 比较陌生。我正在使用 CheckboxTableViewer。我有一个听众:
diagnosesTableViewer.getTable().addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent e) {
int nomenclatureSelectionIndex = diagnosesTableViewer
.getTable().getSelectionIndex();
Nomenclature checkedNomenclature = (Nomenclature) diagnosesTableViewer
.getElementAt(nomenclatureSelectionIndex);
diagnosesTableViewer.setChecked(checkedNomenclature,
!diagnosesTableViewer
.getChecked(checkedNomenclature));
}
当我单击表格行(除复选框之外的任何位置)时,一切都按预期工作。但是,当我专门单击复选框时,我也会取消选中先前选择的行的复选框。我认为这是因为当我单击复选框时,它不会将焦点更改为新行,因此在旧的、先前选择的行 itlsef 和我正在选择其复选框的新行上调用侦听器,它的侦听器永远不会被调用。我该如何解决这个问题?
【问题讨论】: