在构建这个应用程序时偶然遇到这个问题,现在真的阻碍了我们的功能。某些JavaFX布局是否与Mac电脑不兼容?
Screen screen = Screen.getPrimary();
Rectangle2D bounds = screen.getVisualBounds();
overallStage.setX(bounds.getMinX());
overallStage.setY(bounds.getMinY());
overallStage.setWidth(bounds.getWidth());
overallStage.setHeight(bounds.getHeight());
这是允许在用户登录之后,屏幕的最大化:这个问题首先在我的其他开发人员(使用MAC)试图运行应用程序时,我改变影响舞台上的一行代码开始。在mac用户登录后,舞台将最小化为左下角的一个小窗口,然后消失。现在有一件类似的事情正在发生,我做了一个新的添加。
我做了这个除了在应用程序中包含一个侧面菜单。正如你所看到的,我将整个场景包装在一个堆叠窗格中,然后用侧边菜单的外部锚点窗格将锚定窗格(参见层次结构)包裹起来。现在完全一样的事情发生在两个不同的Mac上最小化和消失的地方,Windows非常好。
有什么东西导致我相信一些布局和舞台设置与Mac电脑兼容它后,我裹在主场景只发生一次,有没有人遇到此问题或不知道如何解决它?
非常好的问题! – Milan
实际的布局代码是用Java编写的,所以它应该做的任何系统(至少如果系统运行相同的JDK版本)同样的事情。该'Screen' API('Screen.getPrimary()'和'screen.getVisualBounds()')显然必须与本地系统进行通信,并可能做一些坐标变换。你能记录你在不同系统上屏幕边界获得的值吗?每个系统运行哪个JDK版本?在Mac上,一些较早的JDK版本有将本地屏幕坐标转换为JavaFX使用的坐标系的错误。 –