我正在尝试将一个程序从java 8迁移到java 9。
在我的程序中,我找到了以下代码。
//Run JavaFX Application Thread/Toolkit
PlatformImpl.startup(() -> {
});它尝试启动JavaFX工具包
不幸的是,java 9不再支持PlatformImpl.startup。
有哪一种替代品呢?
如何启动JavaFX工具包?
谢谢
发布于 2018-02-15 16:44:36
startup()方法是Java9发行版中从非公共类PlatformImpl提升到公共API Platform类的方法之一。现在它已经完全记录在API文档中了。
因此,Java 9中的等效调用是
Platform.startup(() -> { });请注意,此方法的用例相当少见,API文档需要花费一定的时间来强调这一点:
通常,没有必要显式调用此方法,因为它是根据构建大多数JavaFX应用程序的方式调用的。 ..。 如前所述,通常情况下,JavaFX应用程序线程会自动启动。只有在尚未初始化JavaFX运行时才调用此方法是非常重要的。自动启动JavaFX运行时的情况包括: 对于扩展JavaFX的标准
Application应用程序,并使用JavaFX或Application类中的一个启动方法来启动应用程序,FX运行时在加载Application类之前由启动程序自动初始化。
JFXPanel显示FX内容的Swing应用程序,在构造第一个JFXPanel实例时将初始化FX运行时。FXCanvas显示FX内容的SWT应用程序,在构造第一个FXCanvas实例时将初始化FX运行时。当应用程序不遵循这些常见方法时,开发人员就有责任通过调用此启动方法手动启动JavaFX运行时。当JavaFX运行时已经运行时调用此方法将导致抛出一个IllegalStateException --请求只启动JavaFX运行时一次是有效的。
因此,在进行更改的过程中,您需要更新应用程序以使其与Java 9兼容,因此您可能需要仔细考虑是否需要调用startup();也许无论如何都有一种更标准和更健壮的方法来启动JavaFX应用程序。
https://stackoverflow.com/questions/48811237
复制相似问题