我正在为Eclipse开发一个插件。我正在使用JavaFX来获得此插件的多个功能。我在Eclipse的UI中内置了一个菜单,其中包含每个命令的处理程序,即每个功能都被点击。例如:用户点击"开始符号表"然后调用SymbolTableHandler。
这些处理程序中的每一个都从Eclipse作业启动JavaFX应用程序,以确保UI不会无响应。 JavaFX应用程序使用application.launch()
开始。
我的问题是,当用户启动两个功能时,由于仅允许调用application.launch()
一次限制而引发错误。
如果所有功能一起开始,因为我可以创建新的舞台等,这不会是一个问题。
那么有多种方法可以多次模仿application.launch
,因此可以同时运行此插件的多个表/功能吗?
如果有人关心代码,我已经找到了解决方案。
答案 0 :(得分:0)
从JavaFX Application javadoc开始,将执行以下操作:
因此,不是自己调用launch(),而是自己完成上述任务(例如创建自己的自定义启动器)。
启动程序也将启动JavaFX平台,因此您需要creating a JFXPanel()间接触发它(如果尚未完成)。
当然,棘手的部分是4.基本上,你不能真的这样做,因为你不能做4,你不知道该怎么做5.所以你的& #34;应用"将需要编写一些约束(例如,他们不会调用Platform.exit(),因为这会立即关闭所有活动插件)。您可以在自定义启动器中创建的舞台上放置一个侦听器并转到步骤3,然后在关闭该舞台时调用stop()方法。
上面提到的解决方案有点笨拙,但可能对你有用。
见相关: