如何使主javafx窗口仍然可以在MacOS中从全屏模式返回

时间:2017-11-24 15:33:22

标签: java macos javafx macos-sierra

此问题与JavaFX (jdk-9.0.1)上的MacOS有关(我运行Sierra)。在我点击绿色小按钮primaryStage.setResizable(true)后,我点击了全屏模式,然后又恢复正常,我正在开发一个带有可调整大小的主窗口see picture below的x平台桌面应用程序模式不再可以调整窗口大小。从MacOS上的全屏模式返回后,如何使其仍可重新调整大小?它适用于Windows和Linux,但不适用于MacOS。非常感谢任何帮助。

screenshot maximize button in macos

修改1 :现在报告此问题,并在以下网址JDK-8191885上的bugs.java.com上显示

2 个答案:

答案 0 :(得分:0)

由于它甚至没有计划在Java 11之前修复这个bug,我们可能不得不忍受它一段时间。因此,我试图为它找到某种工作方式,这里是:

添加此类似于您的代码的内容。

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

通过绿色按钮取消最大化您的舞台后,您仍然需要手动执行的操作是单击舞台的标题栏并将其移动几个像素。之后,舞台应该像往常一样再次使用鼠标调整大小。它是一个讨厌的黑客,但仍然比永远忍受这个bug更好。

答案 1 :(得分:0)

谢谢mipa!我发现向fullScreenProperty()添加一个监听器会更好,然后你不必点击标题栏并将其移动几个像素。关键是要setResizable(false)然后setResizable(true),感谢您找到答案。我将使用此解决方法,直到修复错误:

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

        if (!primaryStage.isFullScreen()) {

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