如何在Eclipse RCP中的SWT表中获取列号?

时间:2011-07-01 09:30:33

标签: numbers swt rcp

我的问题是如何在Eclipse RCP中的SWT表的选定行中找到当前选择的列号?

2 个答案:

答案 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();
            }
        }
    });