如何将方法从java 1.7替换为java 11



我正在将使用JavaFX的应用程序从Java 1.7迁移到Java 11。 我遇到的错误之一是关于方法StageHelper.getStages()已经消失。 我没有找到任何可以替代它的东西。你有解决方案来取代这种方法吗? 感谢您的帮助!:)

StageHelper一直是私有API,因为它是com.sun.javafx.stage的一部分。因此,您应该知道,私有 API 可以随时更改或删除,恕不另行通知。

对于Java 1.7,我不能说JavaFX(2.2?(当时不是开源的。

对于 Java 1.8,可以在此处找到StageHelper.getStages()方法。

然而,对于Java 1.9,此处定义的StageHelper不再包含getStages

原因可以在此问题JDK-8156170:清理阶段和阶段帮助程序中找到。

如果您阅读说明,作为问题的一部分,他们将:

删除getStages()并使此方法的调用方使用公共 APIWindow.getWindows()

选择

如该问题所述,由于JavaFX 9具有此公共方法Window.getWindows(),这将

返回一个列表,其中包含对当前显示的 JavaFX 窗口的引用

请注意,Window可以是StagePopupWindow,所以也许你可以过滤掉它们:

List<Stage> stages = Window.getWindows().stream()
.filter(Stage.class::isInstance)
.map(Stage.class::cast)
.collect(Collectors.toList());

相关内容

  • 没有找到相关文章

最新更新