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

发布于 2024-11-18 04:21:02 字数 53 浏览 0 评论 0原文

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

My question is How can we find the currently selected column number in the selected row of a SWT Table in Eclipse RCP?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

逆流 2024-11-25 04:21:02

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();
        //...
    }
});

Inside a Listener - e.g. for SWT.Selection - you can use viewer.getCell(...) as illustrated in the following example:

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();
        //...
    }
});
孤独患者 2024-11-25 04:21:02

如果您想确保在调用选择监听器之前更新列索引,那么 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();
            }
        }
    });

If you want to be sure that the columnindex is updated prior to calling the selectionlistener, then the mousedown event will also work fine:

    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();
            }
        }
    });
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文