我正在尝试在javaFX中创建一个下拉菜单。我得到了显示的菜单,但它们显示为" ..."而不是菜单的名称。另一个问题是,当我单击下拉菜单时,它会将选项放入其中,然后再将其弹出。下拉菜单的内容显示正确。
这是javaFX的内容,并以其内容显示场景(仅下拉菜单)。
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setTitle("Memory");
BorderPane root = new BorderPane();
Scene scene = new Scene(root , HEIGHT, LENGHT);
canvas = new Canvas(HEIGHT, LENGHT);
menuBar = new GameMenu();
root.getChildren().add(menuBar.createMenu());
primaryStage.setScene(scene);
primaryStage.setResizable(false);
primaryStage.show();
}
这是我创建菜单栏的地方。
public class GameMenu {
MenuBar menuBar;
public GameMenu(){
menuBar = new MenuBar();
Menu menuFile = new Menu("File");
MenuItem optionStartGame = new MenuItem("New game");
MenuItem optionLoadGame = new MenuItem("Load Game");
menuFile.getItems().addAll(optionStartGame, optionLoadGame);
Menu menuEdit = new Menu("Edit");
Menu menuView = new Menu("View");
menuBar.getMenus().addAll(menuFile, menuEdit, menuView);
}
public MenuBar createMenu() {
return menuBar;
}
}
答案 0 :(得分:3)
您的代码唯一的问题是您在根getChildren
上使用BorderPane
方法来填充它。
您可以将MenuBar添加到BorderPane
的顶部,如:
root.setTop(menuBar.createMenu());