14.3 响应鼠标双击事件
如何让TableViewer的每一行响应鼠标的双击或单击事件呢?又如何取得被选择中的记录数据呢?本节将解决这个问题。本节实例的效果如图14.5所示,双击表格中的某条记录时弹出一个提示框,框中的文字信息显示该记录的人名。

图14.5 鼠标响应的效果图
本节实例在14.2节的代码基础上修改完成(完整代码见配书光盘的TableViewer2.java文件),具体如下。
在tv.setInput(data)一句之后,添加一个自定义方法addListener(tv),在此方法中给TableViewer添加监听器。addListener方法的代码如下:
private void addListener(TableViewer tv) {
// 鼠标双击事件监听
tv.addDoubleClickListener(new IDoubleClickListener() {
public void doubleClick(DoubleClickEvent event) {
//得到表格的选择对象,里面封装了表格中被选择的记录信息
IStructuredSelection selection = (IStructuredSelection) event.getSelection();
// 得到所选择的第一条实体对象(表格可以有多选),并进行类型转换
PeopleEntity o = (PeopleEntity) selection.getFirstElement();
// 弹出一个提示框
MessageDialog.openInformation(null, "提示", o.getName());
}
});
// 选择事件(单击)监听
tv.addSelectionChangedListener(new ISelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent event) {
// 事件处理代码……(略)
}
});
}






