这个问题是关于JavaFX (jdk-9.0.1)
on MacOS
(我运行塞拉)。我正在开发一个带有可调整大小的主窗口primaryStage.setResizable(true)
的x平台桌面应用程序,在我单击小绿色按钮see picture below
进入全屏模式,然后再回到正常模式后,窗口的大小调整不再可能了。在MacOS上从全屏模式返回后,如何使它仍然可调整大小?它在Windows和Linux上工作,但在MacOS上不起作用。任何帮助都是非常感谢的。
编辑1:该问题现在已在bugs.java.com
上报告并在以下url JDK-8191885上可见
发布于 2017-12-19 16:41:15
谢谢米帕!我发现将侦听器添加到fullScreenProperty()
中更好,这样就不必单击标题栏并将其移动几个像素。关键是完成setResizable(false)
,然后是setResizable(true)
,谢谢您的发现。在修复bug之前,我将使用这个解决方法:
primaryStage.fullScreenProperty().addListener((v,o,n) -> {
if (!primaryStage.isFullScreen()) {
primaryStage.setResizable(false);
primaryStage.setResizable(true);
}
});
发布于 2017-12-18 15:02:17
由于在Java 11之前甚至还没有修复此bug的计划,我们可能需要使用它很长一段时间。因此,我试图为它找到某种解决办法,这就是:
添加这个或类似于您的代码的内容。
primaryStage.maximizedProperty().addListener((v,o,n) -> {
primaryStage.setResizable(false);
primaryStage.setResizable(true);
});
一旦你通过绿色按钮去最大化你的舞台,你唯一需要做的就是手动点击你的舞台的标题栏,并移动它几个像素。在此之后,阶段应该与鼠标重新调整大小,就像往常一样。这是一种令人讨厌的黑客攻击,但总比永远忍受这个错误要好。
发布于 2017-11-24 17:47:24
这看起来像JavaFX中的一个bug。我可以用JDK9和10 can复制这种行为。不过,对于最新的JDK8来说,它似乎仍然有效。我还没有找到任何工作方法。你应该向http://bugreport.java.com/报告这件事
https://stackoverflow.com/questions/47476328
复制相似问题