代码示例:
viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL
| SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.CHECK);
// 设置表格显示方式。
table = viewer.getTable();
table.setHeaderVisible(true);
table.setLinesVisible(true);
table.addListener(SWT.Selection, new Listener() {
@Override
public void handleEvent(Event event) {
if (event.detail == SWT.CHECK) {
TableItem tableItem = (TableItem) event.item;
PowerLineInfo checkedItem = (PowerLineInfo) (tableItem
.getData());
checkedItem.setShowed(true);
// 检查CheckBox点击状态。
if (tableItem.getChecked()) {
System.out.println("This click is check!");
// 保存当前被选择线路。
LinesManager.getInstance().addNeedShowLine(checkedItem);
} else {
System.out.println("This click is uncheck!");
// 清除当前被选择线路。
LinesManager.getInstance().removeNeedShowLine(
checkedItem);
}
}
}
});
参考资料:
1、JFace TableViewer with Checkbox, catch/diff the check and selected event