Javaの11には、Java 1.7からMethodeののStageHelper.getStages()を交換する方法

pacataque:

私が使用してアプリケーション移行しています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もう。

その理由は、この問題で見つけることができるステージクリーンアップとStageHelper:JDK-8156170

あなたが説明を読めば、問題の一部として、彼らは以下となります。

削除getStages()、公開APIを使用するには、このメソッドの呼び出し元にして作りますWindow.getWindows()

代替

その問題に言及したように、JavaFXの9以来、あなたは、このパブリックメソッドを持ってWindow.getWindows()、その意志を

現在表示JavaFXのウィンドウへの参照を含むリストを返します

ことを注意WindowすることができStageたりPopupWindow、ので、多分あなたがそれらを除外することができます。

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

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=315827&siteId=1