某些 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 与所有操作系统兼容。
祝你好运。如果您需要任何进一步的帮助,请告诉我。 :)
运行 在构建此应用程序时多次遇到此问题,现在确实阻碍了我们的功能。当我更改影响舞台的代码行时,我的其他开发人员(使用 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 与所有操作系统兼容。
祝你好运。如果您需要任何进一步的帮助,请告诉我。 :)