0
嗨我對SWT來說比較新。我正在使用CheckboxTableViewer。我有一個聽衆: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和新選擇的行的調用框中調用偵聽器,被稱爲。我該如何解決這個問題?
我試過這樣做。問題在於,由於焦點仍在舊的先前選擇的行上,所以也在該行上調用了監聽器。當我點擊複選框時,我想以某種方式刪除舊行中的foucs到新行。 – Nemin 2014-10-09 16:16:13
你將不得不選擇點擊行,看到更新的答案。 – 2014-10-09 16:18:29
有什麼方法可以查看元素是否已被選中?如果元素已經被選中,我不想再次調用監聽器。 – Nemin 2014-10-09 16:36:32