2017-11-24 8 views
0

この問題はJavaFX (jdk-9.0.1)MacOS(私はSierraを実行しています)に関するものです。小さなサイズの緑色のボタンsee picture belowをクリックした後に、サイズ変更可能なメインウィンドウprimaryStage.setResizable(true)を持つxプラットフォームのデスクトップアプリケーションを開発しています。フルスクリーンモードに戻って再び通常モードに戻ってウィンドウのサイズ変更ができなくなりました。 MacOSでフルスクリーンモードから復帰した後、どうやってサイズを変更することができますか? WindowsとLinuxでは動作しますが、MacOSでは動作しません。どんな助けも大歓迎です。メインのjavafxウィンドウをMacOSのフルスクリーンモードから戻すことができるようにする方法

screenshot maximize button in macos

編集1:問題は今、これはJavaFXのバグのように見え、次のURL JDK-8191885

答えて

0

ありがとうmipa! fullScreenProperty()にリスナーを追加する方が良いことが分かったので、タイトルバーをクリックして数ピクセル移動する必要はありません。鍵はの後にsetResizable(true)が続きましたが、見つけてくれてありがとう。バグが修正されるまでこの回避策を実行します:

primaryStage.fullScreenProperty().addListener((v,o,n) -> { 

     if (!primaryStage.isFullScreen()) { 

      primaryStage.setResizable(false); 
      primaryStage.setResizable(true); 
     } 
    }); 
+0

偉大な、あなたの提案も私のために働く。 – mipa

0

bugs.java.comに報告し、目に見えるされています。私はこの動作をJDK9と10eaで再現できます。最新のJDK8ではまだ動作するようです。私はまだ何らかのワークラウンドを見つけていません。 http://bugreport.java.com/

+0

ありがとう、ありがとう。そうです... – jbilander

+0

バグレポートへのリンク:https://bugs.openjdk.java.net/browse/JDK-8191885 – mipa

0

Java 11より前にこのバグを修正する予定さえないので、私たちはおそらくそれをしばらく使っていなければならないでしょう。したがって、私はそれのためのいくつかの種類の回避策を見つけようとしました。ここにはあります:

これはあなたのコードに追加してください。緑色のボタンを経由して

primaryStage.maximizedProperty().addListener((v,o,n) -> { 
    primaryStage.setResizable(false); 
    primaryStage.setResizable(true); 
}); 

あなたは、ステージ非最大化したら、あなたはまだ手動で行う必要がある唯一のものは、あなたのステージのタイトルバーにクリックして、いくつかのピクセルのためにそれを移動することです。その後、ステージをマウスでいつものようにサイズ変更する必要があります。その厄介なハックですが、このバグを永遠に生きなければならないよりも優れています。

+0

ありがとう、私はそれがfullScreenPropertyにリスナーを追加する方が良いことを発見しました(これは、通常の画面モードに戻るときに呼び出されます。 – jbilander

関連する問題