如何将methode StageHelper.getStages()从java 1.7替换为java 11
我正在将一个使用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,因此您可以将它们过滤掉:如何将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
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());
非常感谢您,您的回答非常清楚,对我很有效!:非常感谢您,您的回答非常清楚,对我很有效!: