我有一个应用程序,其中UI大部分都是使用FXML构建的。但是我想添加一个菜单栏,我使用“纯java”而不使用FXML。我没有错误但是菜单栏不可见。我做错了什么?
以下是代码:
Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
MenuBar menubar = new MenuBar ();
Menu file = new Menu ("File");
Menu options = new Menu ("options");
Menu help = new Menu ("help");
MenuItem save = new MenuItem ("save");
MenuItem close = new MenuItem ("close");
MenuItem open = new MenuItem ("open");
MenuItem exit = new MenuItem ("exit");
file.getItems().addAll(save, close, open, new SeparatorMenuItem(),exit);
Menu color = new Menu ("Colors");
Menu prefs = new Menu ("Preferences");
options.getItems().addAll(color, prefs);
MenuItem red = new MenuItem ("red");
color.getItems().add(red);
MenuItem setExample = new MenuItem ("SetExample");
prefs.getItems().add(setExample);
//root.getChildren().add(menubar);
menubar.getMenus().addAll(file, options, help);
BorderPane root2 = new BorderPane();
root2.setTop(menubar);
答案 0 :(得分:1)
首先,您需要一个fxml文件的控制器类。
有关该架构的示例,请参阅http://docs.oracle.com/javase/8/javafx/api/javafx/fxml/doc-files/introduction_to_fxml.html#controllers
您可以通过@FXML注释注入所有组件。
然后正确的方法是将fxml文件中的region元素定义为您的菜单栏的容器元素
最后,将菜单栏添加到region元素的子元素中。该代码放在您的控制器类中。