Я столкнулся с подобной проблемой и смог решить ее в таблице с помощью SWT.check.
В виджете Выбранное событие таблицы вы можете попробовать следующий код:
TableItem[] item = table.getItems();
for(int j=0; j<item.length;j++)
{
TableItem tblItem = item[j];
if (tblItem.getChecked())
{
table.setSelection(j);
if(codition for the checkbox to be non-Editable written here)
{
item[table.getSelectionIndex()].setChecked(false);
}
}
}
В приведенном выше коде после того, как таблица заполнена, и когда пользователь пытается проверить любой элемент в таблице, должен быть вызван вышеуказанный код. Если флажок установлен, если условие соответствует тому, что checkBox не подлежит редактированию, флажок не устанавливается, в противном случае он выбирается. Таким образом, в таблице некоторые строки могут быть редактируемыми, в то время как другие будут недоступны для редактирования в соответствии с требуемым условием .