Java 简单的SWT/JFace练习找不到处理程序
我正在阅读“Eclipse4插件开发示例初学者指南”以及“创建命令和处理程序的时间”一节 这定义了一个简单的命令、处理程序和menuContribution。我按照文本中的说明操作,但当呈现菜单时,菜单项不敏感 然后我注意到处理程序中“isEnabled”方法的默认实现只返回“false”。我将其更改为“true”,这使菜单项变得敏感,但当我选择它时,我看到以下内容: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
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的代码。这是我弄错的细节。