[英]Mix FXML with “pure javafx” code
我有一個應用程序,其中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);
首先,您需要一個用於fxml文件的控制器類。
有關該架構的示例,請參見http://docs.oracle.com/javase/8/javafx/api/javafx/fxml/doc-files/introduction_to_fxml.html#controllers
在那里,您可以通過@FXML批注注入所有組件。
正確的方法是將fxml文件中的region元素定義為菜單欄的容器元素
最后,將菜單欄添加到region元素的子元素中。 該代碼位於您的控制器類中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.