代码示例:
- 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);
- }
- }
- }
- });
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