忽略布局等代码,此处主要是点击监听事件的方法。
//鼠标点击监听事件
table.addListener(SWT.MouseDown, new Listener() {
@Override
public void handleEvent(Event event) {
//记录行的坐标
Integer rowIndex = null;
//记录列的坐标
Integer columbIndex = null;
//获取坐标轴
Point point = new Point(event.x, event.y);
//获取点击的行信息
TableItem item = table.getItem(point);
//获取table中总的行数
TableItem[] rows = table.getItems();
if (item != null) {
//必须有行名称
if (item.getText()!=null) {
//遍历table所有行
for (int i = 0; i < rows.length; i++) {
//对比每次遍历的行名称和点击的行的名称
if (item.getText().equals(rows[i].getText())) {
rowIndex = i ;
// System.out.println("row ==" + rowIndex);
}
}
}
//遍历所有列
for (int j = 0; j < table.getColumnCount(); j++) {
if (item==null||item.getBounds(j)==null) {
break;
}
Rectangle rect = item.getBounds(j);
if (rect.contains(point)) {
columbIndex = j ;
// System.out.println( ",第" + columbIndex + "列");
}
}
}
}
}