下拉菜单表现得很奇怪

时间:2016-10-14 11:53:42

标签: java javafx

我正在尝试在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;
}


}

1 个答案:

答案 0 :(得分:3)

您的代码唯一的问题是您在根getChildren上使用BorderPane方法来填充它。

您可以将MenuBar添加到BorderPane的顶部,如:

root.setTop(menuBar.createMenu());