Java 如何将用户输入功能添加到eclipse插件中?

Java 如何将用户输入功能添加到eclipse插件中?,java,eclipse,user-interface,plugins,pde,Java,Eclipse,User Interface,Plugins,Pde,我正在eclipse中开发一个插件,它可以生成一个文本文件(基于用户输入)并触发一个perl脚本。我可以很容易地制作一个简单的插件(比如Hello World),并且我可以向它添加新的菜单和命令。我理解这些东西是如何相互关联的,但我陷入困境的地方是用户输入 如何要求用户输入其选择?我是说我应该用什么分机约他出去?我找不到任何可以要求用户输入数据的内容。一旦我能让他输入所需的信息,我就可以很容易地访问这些信息以继续进行 PLZ。注意:这是我第一次在一个在线社区,所以我尽量在我的描述中透彻。我是ec

我正在eclipse中开发一个插件,它可以生成一个文本文件(基于用户输入)并触发一个perl脚本。我可以很容易地制作一个简单的插件(比如Hello World),并且我可以向它添加新的菜单和命令。我理解这些东西是如何相互关联的,但我陷入困境的地方是用户输入

如何要求用户输入其选择?我是说我应该用什么分机约他出去?我找不到任何可以要求用户输入数据的内容。一旦我能让他输入所需的信息,我就可以很容易地访问这些信息以继续进行


PLZ。注意:这是我第一次在一个在线社区,所以我尽量在我的描述中透彻。我是eclipse新手,对Java有着非常基础的知识。我在网上上了MarkDexter的Java课程。我对C++有很好的理解和工作经验。

< P>没有用于从用户输入信息的Eclipse扩展点。为此,您通常使用对话框或视图,具体取决于具体的用例。

从我上面的评论继续(抱歉,无法容纳600个字符的评论限制,因此我将此添加为您问题的可能答案)——快速搜索使我找到了此-。您可以使用操作轻松添加由插件处理的工具栏按钮、菜单项等。简而言之,这就是将功能插入工作台的方式。我建议查看上面的链接以获得更好的理解。至于收集输入,可以使用JFace对话框(http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fjface%2Fdialogs%2FDialog.html). 您可能会发现有许多预先封装好的对话框很有用,所以我建议您多做一些研究,看看什么最适合您的用例。祝你好运

启动Eclipse插件开发可能有点难以承受

答案如下: 我假设您已经使用“hello,world命令”模板创建了一个新的插件项目。如果没有,你可以很容易地做到。它将帮助你开始。在这个示例项目中,eclipse为您创建了一个简单的菜单贡献。我不打算讨论细节,但本质上,您创建了一个命令(org.eclipse.ui.commands),并将其与工作台中的某个位置关联,如菜单或工具栏图标(org.eclipse.ui.menus)。然后,您需要创建一些东西来处理这个命令,就像它被执行时一样(通过用户单击菜单)。这是由处理程序(org.eclipse.ui.handlers)完成的,处理程序是在您希望代码进入时执行的

  • 打开插件中的“plugin.xml”文件并导航到“Extension”部分
  • 展开“org.eclipse.ui.handlers”分支并选择唯一的“(handler)”项
  • 单击编辑器右侧的“类”链接,将导航到生成的类
  • 代码转到“execute”方法。这是用户执行命令时将运行的内容。在您的情况下,如果您想请求输入,可以使用输入对话框:
  • 代码:

    否要请求用户输入,您需要显示一个对话框。我建议你看一下这本不错的教程:它非常详细地描述了这一点

    详细的答案是查看和了解EclipseRPC和命令背后的基础知识


    最后,您还需要查看这里,以了解如何运行更长的任务,如您正在讨论的perl脚本

    我可能没有正确理解您的问题,但您应该能够在工作台上注册一个操作,然后使用该操作挂钩弹出一个对话框,或者为用户提供另一种与插件交互的方式。首先感谢您的回答。我不知道在工作台上注册操作意味着什么?我相信当你给你的插件添加一个扩展点时,它会自动发生。我想我可以使用org.eclipse.ui.menus轻松弹出一个对话。你同意我的观点吗?你能告诉我你所说的风景到底是什么意思吗?我只是被我遇到的所有新事物弄得不知所措。视图是否引用普通视图,如包资源管理器、错误日志、问题等。??如果你能给我一个关于你所指观点的链接,那就太好了。谢谢对于某些用例,您可能希望输入区域始终处于“打开”状态,以便可以随时更改该区域中的值。这可以通过打开一个对话框来更改现有值来实现,但也可以通过在Eclipse中创建一个视图来实现,在该视图中可以直接更改当前值。无论何时进行更改,这些都会立即反映在结果中。在Eclipse中,“Properties”视图可视为一个示例,因为你可以直接更改支持对象的值。我似乎在格式方面有问题-这里它的格式很好:谢谢一顿fikovnik…它确实有助于确认我读到的许多东西…我不能给你评分,因为我的代表不够好,无法评分…再次感谢你帮了我这么多,我无法用语言来表达我对你的感激之情。但是你是从哪里获得这些关于插件开发的信息的呢?我已经做了好几个星期了,但是要把我在互联网上找到的所有零碎的信息放在一起是非常困难的。请告知。谢谢,非常欢迎您(也许您可以将问题标记为已回答)。这本RCP书是一个很好的开始:它将帮助你开始并理解基础知识。然后我建议实际签出eclipse源代码并浏览代码。每次我找到我想要的功能,然后查看相应的源代码时,我都会使用eclipsespy插件()。这里还有很多信息:嗨,菲科夫尼克,最近我了解了SWT(软件小部件工具包)。它有很多漂亮的特点
    public Object execute(ExecutionEvent event) throws ExecutionException {
           InputDialog dlg = new InputDialog(
              HandlerUtil.getActiveShellChecked(event), "Title",
              "Enter text", "Initial value", null);
          if (dlg.open() == Window.OK) {
            // User clicked OK; run perl
            String input = dlg.getValue();
            // TODO:do something with value
          }
          return null; 
     }