某些 JavaFX 布局是否与 Mac 台计算机不兼容?

Are some JavaFX layouts not compatible with Mac computers?

运行 在构建此应用程序时多次遇到此问题,现在确实阻碍了我们的功能。当我更改影响舞台的代码行时,我的其他开发人员(使用 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 用户登录后,舞台将最小化为左下角的一个小 window 然后消失.我添加的新内容现在正在发生类似的事情。

我做这个添加是为了在应用程序中包含一个侧面菜单。如您所见,我将整个场景包裹在一个 Stack Pane 中,然后是 Anchor 窗格(参见层次结构),并为侧边菜单添加了一个外部锚定窗格。现在发生了完全相同的事情,它会在两台不同的 Mac 上最小化并消失,Windows 完全没问题。

有些东西让我相信某些布局和舞台设置与 Mac 不兼容,因为它只是在我包裹主场景后再次出现,有没有人遇到过这个问题或知道如何解决它?

设置阶段值时,您应该:

    //Initialize Group root for Main Node
    Group root = new Group();

    //Initialize Scene on group root with specific sizes
    Scene scene = new Scene(root, 450, 250);

    //Initialize BorderPane and Bind the layout with the scene size.
    BorderPane borderPane = new BorderPane();
    borderPane.prefHeightProperty().bind(scene.heightProperty());
    borderPane.prefWidthProperty().bind(scene.widthProperty());

    //Set the TabPane to be centered
    borderPane.setCenter(tabPane);

    //Adds Layout to Main Node
    root.getChildren().add(borderPane);

这会根据屏幕分辨率以及所有控件自动更改 window 大小。因此,允许您使您的 JavaFX 与所有操作系统兼容。

祝你好运。如果您需要任何进一步的帮助,请告诉我。 :)