0
我對SWT非常陌生。實際上,今天開始研究它。我有一個CheckboxTableViewer類型的表。我希望能夠做的是每當用戶選擇行(即在行的任何地方點擊)我想檢查複選框(打勾)。目前我對的CheckboxTableViewer監聽器如下:單擊行時設置CheckboxTableViewer的複選框
diagnosesTableViewer.addCheckStateListener(new ICheckStateListener() {
@Override
public void checkStateChanged(CheckStateChangedEvent event) {
Nomenclature changedStateNomenclature = (Nomenclature) event
.getElement();
if (event.getChecked()) {
selectedNomenclatures.add(changedStateNomenclature);
} else {
selectedNomenclatures.remove(changedStateNomenclature);
}
}
});
我能夠通過在方框內打勾,以選擇該行。但是,即使用戶通過單擊任何列上的該行上的任何位置(而不僅僅是複選框)來選擇該行,我也希望選中該複選框。
我想這個邏輯會在addSelectionChangedListener的addSelectionChangedListener
的某處。但我不知道該怎麼去做。誰能幫我這個?
您可以使用'SelectionAdapter'而不是'SelectionListener'來避免編寫'widgetDefaultSelected'。 – 2014-10-09 07:00:50
謝謝改變了代碼。 – 2014-10-09 07:22:32
我遇到了這個問題。當我點擊該行時,它按預期工作,但是當我單擊複選框時,我不會從先前單擊的行中刪除焦點,因此它會更改該行的狀態以及我單擊的新行。有沒有一種方法可以將焦點從先前選定的行中移除,並將其更改爲我單擊的複選框? – Nemin 2014-10-09 15:15:02