2016-10-14 94 views
1

我想在javaFX中下拉菜單。我得到要顯示的菜單,但它們顯示爲「...」而不是菜單的名稱。另一個問題是當我點擊下拉菜單時,它會將選項放入其中,然後再次彈出它。下拉菜單的內容正確顯示。下拉菜單表現奇怪

這是JavaFX的inits並顯示了它的內容的場景(僅下拉menues)。

@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

與您的代碼唯一的問題是,你正在使用你的根BorderPanegetChildren方法來填充它。

您可以添加到菜單欄的BorderPane像頂部:

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

謝謝,這解決了我的問題! – ZeppRock