2016-10-14 3 views
1

Я пытаюсь сделать выпадающее меню в 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; 
} 


} 

ответ

3

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

Вы можете добавить MenuBar в верхней части BorderPane как:

root.setTop(menuBar.createMenu()); 
+0

Спасибо, это решить мою проблему! – ZeppRock

Смежные вопросы