Я очень знаком с 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'. –
Спасибо, изменил код. –
У меня проблема с этим. Когда я нажимаю на строку, она работает так, как ожидалось, но когда я нажимаю на этот флажок, я не удаляю фокус из ранее щелкнутой строки, и, следовательно, он изменяет состояние этой строки вместе с новой, которую я нажимаю. Есть ли способ удалить фокус из ранее выбранной строки и изменить его на строку, чей флажок я нажимаю? – Nemin