如何在 Eclipse 插件 + RCP 中获取用户点击的 x 和 y 位置

How to get x and y position of user click in Eclipse plugin + RCP

我正在使用 Eclipse 使用 JFace + RCP 为电子邮件客户端开发一个插件。我没有使用 eclipse 开发任何屏幕,邮件客户端将是这个插件的屏幕。

我想获取客户端中用户点击的位置

您可以使用DisplayaddFilter方法在SWT代码中添加一个为所有鼠标按下事件调用的监听器:

Display display = Display.getDefault();

display.addFilter(SWT.MouseDown, new Listener()
  {
    @Override
    public void handleEvent(Event event)
     {
       System.out.println("event " + event);

       if (event.widget instanceof Control) {
         Control control = (Control)event.widget;
         System.out.println("display " + control.toDisplay(event.x, event.y));
       }
     }
 });

传递给 handleEventEvent 具有鼠标按下事件的 xy 字段 - 这些与包含该事件的控件相关。该控件在 widget 字段中给出。我已经展示了将这些值转换为绝对显示值的代码。

注意:这仅适用于当前应用程序中的鼠标按下事件,并且仅适用于 SWT 代码。过去Lotus Notes使用了很多本地代码,这行不通,我不知道现在是否仍然如此。