JAVA FX:如何在fxml视图的同一场景中设置菜单栏

JAVA FX : How to set menubar in same scene of fxml view

我想从我的边框面板添加我的菜单栏,但问题实际上是我在初级阶段加载了我的视图 (FXML)。我想在我的视图顶部添加我的菜单栏:

Parent root = FXMLLoader.load(getClass().getResource("/view/home/home.fxml"));

// Create MenuBar
MenuBar menuBar = new MenuBar();

// Create menus
Menu fileMenu = new Menu("File");
Menu editMenu = new Menu("Edit");
Menu helpMenu = new Menu("Help");

BorderPane rootTop = new BorderPane();
rootTop.setTop(menuBar);

primaryStage.setScene(new Scene(root, 900, 600));
primaryStage.setScene(new Scene(rootTop, 900, 600));

primaryStage.show();

此代码:

primaryStage.setScene(new Scene(root, 900, 600));
primaryStage.setScene(new Scene(rootTop, 900, 600));

两次设置场景。第二个 Scene 覆盖第一个,因此您将看不到加载的 FXML。

您可以做的是 将您的 FXML 嵌入 BorderPane:

BorderPane rootTop = new BorderPane();
rootTop.setTop(menuBar);
rootTop.setCenter(root);

primaryStage.setScene(new Scene(rootTop, 900, 600));

primaryStage.show();