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

时间:2017-09-11 07:13:48

标签: java eclipse eclipse-rcp jface rcp

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

我希望用户点击用户点击位置。

1 个答案:

答案 0 :(得分:1)

您可以使用addFilter的{​​{1}}方法添加在SWT代码中为所有鼠标按下事件调用的侦听器:

Display

传递给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)); } } }); 的{​​{1}}包含鼠标按下事件的EventhandleEvent字段 - 这些字段与包含该事件的控件相关。控件在x字段中给出。我已经展示了将这些值转换为绝对显示值的代码。

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