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: Clean up Stage and StageHelper中找到。
如果您阅读描述,作为问题的一部分,他们将:
删除
getStages()并让该方法的调用者使用公共 APIWindow.getWindows()。
备择方案
正如该问题中提到的,从 JavaFX 9 开始,您就有了这个公共方法Window.getWindows(),这将
返回一个列表,其中包含对当前显示的 JavaFX 窗口的引用
请注意, aWindow可以是 aStage或 a PopupWindow,所以也许您可以将它们过滤掉:
List<Stage> stages = Window.getWindows().stream()
.filter(Stage.class::isInstance)
.map(Stage.class::cast)
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
609 次 |
| 最近记录: |