Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Eclipse插件+;RCP_Java_Eclipse_Eclipse Rcp_Jface_Rcp - Fatal编程技术网

Java 如何在Eclipse插件+;RCP

Java 如何在Eclipse插件+;RCP,java,eclipse,eclipse-rcp,jface,rcp,Java,Eclipse,Eclipse Rcp,Jface,Rcp,我正在使用Eclipse开发一个使用JFace+RCP的电子邮件客户端插件。我没有使用eclipse开发任何屏幕,邮件客户端将是这个插件的屏幕 我想获得用户在客户端中单击的位置。您可以使用Display的addFilter方法添加一个侦听器,该侦听器为SWT代码中的所有鼠标按下事件调用: Display display = Display.getDefault(); display.addFilter(SWT.MouseDown, new Listener() { @Overrid

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


我想获得用户在客户端中单击的位置。

您可以使用
Display
addFilter
方法添加一个侦听器,该侦听器为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));
       }
     }
 });
传递给
handleEvent
事件
具有鼠标按下事件的
x
y
字段-这些字段与包含事件的控件相关。控件在
窗口小部件
字段中给出。我已经显示了将这些值转换为绝对显示值的代码


注意:这仅适用于当前应用程序中的鼠标按下事件,并且仅适用于SWT代码。在过去,Lotus Notes使用了很多本机代码,但这些代码都不起作用,我不知道这种情况是否仍然存在。

谢谢您的回答。我尝试了
ActionSetHandler
类,该类实现了
IWorkbenchWindowActionDelegate
,但出现了一些错误。我更新了我的问题,请看一下。您的
事件导入错误。它必须是
org.eclipse.swt.widgets.Event
谢谢greg,很好。是否有可能获取单击图像的工具提示?我的问题中包括了屏幕。因为显示器的尺寸不同,不知道。这取决于显示工具提示的控件及其操作方式。无论如何,这是一个单独的问题。接受这个答案,并尽可能详细地问一个新问题(如活动中的细节)。