Выпадающее меню ведет себя странно

#java #javafx

#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:

Единственная проблема с вашим кодом заключается в том, что вы используете getChildren метод в своем корне BorderPane для его заполнения.

Вы можете добавить панель меню в начало BorderPane подобного:

 root.setTop(menuBar.createMenu());