#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());