Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.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 简单的SWT/JFace练习找不到处理程序_Java_Eclipse_Eclipse Plugin - Fatal编程技术网

Java 简单的SWT/JFace练习找不到处理程序

Java 简单的SWT/JFace练习找不到处理程序,java,eclipse,eclipse-plugin,Java,Eclipse,Eclipse Plugin,我正在阅读“Eclipse4插件开发示例初学者指南”以及“创建命令和处理程序的时间”一节 这定义了一个简单的命令、处理程序和menuContribution。我按照文本中的说明操作,但当呈现菜单时,菜单项不敏感 然后我注意到处理程序中“isEnabled”方法的默认实现只返回“false”。我将其更改为“true”,这使菜单项变得敏感,但当我选择它时,我看到以下内容: org.eclipse.core.commands.NotHandledException: There is no handl

我正在阅读“Eclipse4插件开发示例初学者指南”以及“创建命令和处理程序的时间”一节

这定义了一个简单的命令、处理程序和menuContribution。我按照文本中的说明操作,但当呈现菜单时,菜单项不敏感

然后我注意到处理程序中“isEnabled”方法的默认实现只返回“false”。我将其更改为“true”,这使菜单项变得敏感,但当我选择它时,我看到以下内容:

org.eclipse.core.commands.NotHandledException: There is no handler to execute for command com.packtpub.e4.clock.ui.command.hello
    at org.eclipse.core.commands.Command.executeWithChecks(Command.java:485)
    at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
    at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169)
以下是我的plugin.xml文件的相关摘录:

<extension point="org.eclipse.ui.commands">
  <command description="Says Hello World"
       id="com.packtpub.e4.clock.ui.command.hello" name="Hello">
  </command>
</extension>
<extension point="org.eclipse.ui.handlers">
  <handler class="com.packtpub.e4.clock.ui.handlers.HelloHandler"
       commandId="com.packtpub.e4.clock.ui.command.hello">
  </handler>
</extension>
<extension point="org.eclipse.ui.menus">
  <menuContribution allPopups="false"
        locationURI="menu:help?after=additions">
<command commandId="com.packtpub.e4.clock.ui.command.hello"
     label="Hello"
     style="push">
</command>
  </menuContribution>
</extension>


书中的文字甚至说“如果Hello菜单被禁用,请验证是否定义了处理程序扩展点,它将命令连接到处理程序类。”据我所知,我已经这样做了,但显然没有。

您甚至不应该处理
isEnabled
方法,您应该扩展处理该问题的
AbstractHandler
。给我们看一下handlerBingo的代码。这是我弄错的细节。你甚至不应该处理
isEnabled
方法,你应该扩展
AbstractHandler
来处理这个问题。给我们看一下handlerBingo的代码。这是我弄错的细节。