我的问题是如何在Eclipse RCP中的SWT表的选定行中找到当前选择的列号?
答案 0 :(得分:2)
在Listener
内 - 例如对于SWT.Selection
- 您可以使用viewer.getCell(...)
,如以下示例所示:
myTableViewer.getTable().addListener(SWT.Selection, new Listener() {
@Override
public void handleEvent(Event event) {
Point p = new Point(event.x, event.y);
ViewerCell cell = myTableViewer.getCell(p);
int columnIndex = cell.getColumnIndex();
//...
}
});
答案 1 :(得分:0)
如果要确保在调用selectionlistener之前已更新columnindex,则mousedown事件也可以正常工作:
table.addMouseListener( new MouseAdapter() {
private static final long serialVersionUID = 1L;
@Override
public void mouseDown(MouseEvent event) {
try {
Point p = new Point(event.x, event.y);
ViewerCell cell = viewer.getCell(p);
selectedColumn = cell.getColumnIndex();
} catch (Exception e) {
e.printStackTrace();
}
}
});