【问题标题】:How to get x and y position of user click in Eclipse plugin + RCP如何在 Eclipse 插件 + RCP 中获取用户点击的 x 和 y 位置
【发布时间】:2018-02-19 08:42:24
【问题描述】:

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

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

【问题讨论】:

    标签: java eclipse eclipse-rcp jface rcp


    【解决方案1】:

    您可以使用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 使用了很多本机代码,但这是行不通的,我不知道是否仍然如此。

    【讨论】:

    • 感谢您的回答。我在实现IWorkbenchWindowActionDelegateActionSetHandler 类中进行了尝试,但出现了一些错误。我更新了我的问题,请看一下。
    • 您的Event 导入错误。必须是org.eclipse.swt.widgets.Event
    • 谢谢格雷,很好。是否有可能获取单击图像的工具提示?我在我的问题中包含了屏幕。因为,它因显示器尺寸而异。
    • 不知道。这取决于显示工具提示的控件及其操作方式。无论如何,这是一个单独的问题。接受这个答案并尽可能详细地提出一个新问题(例如事件中的详细信息)。
    猜你喜欢
    • 2019-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多