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
에 어딘가에 있다고 생각합니다. 그러나 나는 그것에 대해 어떻게 가야할지 모르겠다. 아무도 이것으로 나를 도울 수 있습니까?
'SelectionListener' 대신'SelectionAdapter'를 사용하면'widgetDefaultSelected'를 코딩하지 않아도됩니다. –
코드를 변경해 주셔서 감사합니다. –
문제점이 있습니다. 행을 클릭하면 예상대로 작동하지만 확인란을 클릭하면 이전에 클릭 한 행에서 포커스가 제거되지 않으므로 클릭하는 새 행과 함께 해당 행의 상태가 변경됩니다. 이전에 선택한 행에서 포커스를 제거하고 클릭하는 확인란의 행으로 변경할 수있는 방법이 있습니까? – Nemin