如何将methode StageHelper.getStages()从java 1.7替换为java 11

如何将methode StageHelper.getStages()从java 1.7替换为java 11,java,migration,java-7,java-11,javafx-11,Java,Migration,Java 7,Java 11,Javafx 11,我正在将一个使用JavaFX的应用程序从Java1.7迁移到Java11。 我的一个错误是关于StageHelper.getStages方法的,它已经消失了。 我没有找到任何东西来代替它。您是否有替代此方法的解决方案? 谢谢你的帮助!: StageHelper一直是私有API,因为它是com.sun.javafx.stage的一部分。因此,您应该知道,可以随时更改或删除私有API,而无需通知 对于Java1.7,我不能说JavaFX2.2?当时不是开源的 对于Java 1.8,可以找到Stage

我正在将一个使用JavaFX的应用程序从Java1.7迁移到Java11。 我的一个错误是关于StageHelper.getStages方法的,它已经消失了。 我没有找到任何东西来代替它。您是否有替代此方法的解决方案? 谢谢你的帮助!:

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

对于Java1.7,我不能说JavaFX2.2?当时不是开源的

对于Java 1.8,可以找到StageHelper.getStages方法

但是,对于Java1.9,定义的StageHelper不再包括getStages

原因可以在本期中找到

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

删除getStages并使此方法的调用方使用公共API Window.getWindows

替代品

正如该期文章中提到的,既然JavaFX9有了这个公共方法,那么

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

请注意,a可以是Stage或PopupWindow,因此您可以将它们过滤掉:

List<Stage> stages = Window.getWindows().stream()
            .filter(Stage.class::isInstance)
            .map(Stage.class::cast)
            .collect(Collectors.toList());
StageHelper一直是私有API,因为它是com.sun.javafx.stage的一部分。因此,您应该知道,可以随时更改或删除私有API,而无需通知

对于Java1.7,我不能说JavaFX2.2?当时不是开源的

对于Java 1.8,可以找到StageHelper.getStages方法

但是,对于Java1.9,定义的StageHelper不再包括getStages

原因可以在本期中找到

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

删除getStages并使此方法的调用方使用公共API Window.getWindows

替代品

正如该期文章中提到的,既然JavaFX9有了这个公共方法,那么

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

请注意,a可以是Stage或PopupWindow,因此您可以将它们过滤掉:

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

非常感谢您,您的回答非常清楚,对我很有效!:非常感谢您,您的回答非常清楚,对我很有效!: