チェックボックスを追加するgetColumnImages(Object element, int columnIndex)
方法を使用しました。ITableLabelProvider
チェックされたチェックボックスとチェックされていないチェックボックスの写真をいくつか見つけ、このメソッドで選択ロジックを設定しました。http://www.vogella.com/tutorials/EclipseJFaceTable/article.html#jfaceeditorで説明されています。
次に、列編集用の EditingSupport を実装し、そのメソッドgetCellEditor(Object element)
で CheckboxCellEditor をチェックボックス列の戻り値として設定しました。
public class CheckboxColumnEditor extends EditingSupport {
private GridTreeViewer gridViewer;
//...
@Override
protected void setValue(Object element, Object value) {
//...
getViewer().update(element, null);
}
@Override
protected Object getValue(Object element) {
//...
}
@Override
protected CellEditor getCellEditor(Object element) {
//...
return new CheckboxCellEditor(gridViewer.getGrid());
}
@Override
protected boolean canEdit(Object element) {
//...
}
}
次に、列作成コードの場合:
GridColumn column = new GridColumn(parent, SWT.CENTER);
//...
GridViewerColumn gvc = new GridViewerColumn(gridViewer, column);
gvc.setLabelProvider(new ColumnLabelProvider());
gvc.setEditingSupport(new CheckboxColumnEditor());
この回答をご覧ください https://stackoverflow.com/a/13259350/1903580。チェックボックスを追加する方法は 2 つあります。