2014-02-21 32 views
0

我不知道我的菜單似乎有什麼問題,但是當我點擊它時,它不會顯示菜單項,例如「新建,打開,保存等「。我試過看其他例子,但我沒有看到我可能錯過的任何東西。JavaFX菜單不會掉下來

private MenuItem _fileNew = new MenuItem("New"); 
private MenuItem _fileOpen = new MenuItem("Open"); 
private MenuItem _fileSave = new MenuItem("Save"); 
private MenuItem _fileSaveAs = new MenuItem("Save as..."); 
private MenuItem _fileExit = new MenuItem("Exit"); 

private MenuItem _helpAbout = new MenuItem("About " + TITLE + "..."); 

@Override 
public void start(Stage primaryStage) throws Exception 
{ 
    Group root = new Group(); 
    MenuBar menuBar = new MenuBar(); 
    Menu menuFile = new Menu("FILE"); 

    _fileNew.setOnAction(new EventHandler<ActionEvent>() 
    { 
     @Override 
     public void handle(ActionEvent actionEvent) 
     { 
      System.out.println("New Clicked"); 
     } 
    }); 

    _fileOpen.setOnAction(new EventHandler<ActionEvent>() 
    { 
     @Override 
     public void handle(ActionEvent actionEvent) 
     { 
      System.out.println("Open Clicked"); 
     } 
    }); 

    _fileSave.setOnAction(new EventHandler<ActionEvent>() 
    { 
     @Override 
     public void handle(ActionEvent actionEvent) 
     { 
      System.out.println("Save Clicked"); 
     } 
    }); 

    _fileSaveAs.setOnAction(new EventHandler<ActionEvent>() 
    { 
     @Override 
     public void handle(ActionEvent actionEvent) 
     { 
      System.out.println("Save As Clicked"); 
     } 
    }); 

    _fileExit.setOnAction(new EventHandler<ActionEvent>() 
    { 
     @Override 
     public void handle(ActionEvent actionEvent) 
     { 
      System.out.println("Exit Clicked"); 
     } 
    }); 
    menuFile.getItems().addAll(_fileNew, _fileOpen, _fileSave, _fileSaveAs, _fileExit); 

    // HELP MENU 
    Menu menuHelp = new Menu("HELP"); 
    menuHelp.getItems().addAll(_helpAbout); 

    menuBar.getMenus().addAll(menuFile, menuHelp); 
    menuBar.prefWidthProperty().bind(primaryStage.widthProperty()); 

    primaryStage.setTitle(TITLE + VERSION); 
    primaryStage.setX(_bounds.getMinX()); 
    primaryStage.setY(_bounds.getMinY()); 
    primaryStage.setWidth(_bounds.getWidth()); 
    primaryStage.setHeight(_bounds.getHeight()); 

    root.getChildren().add(menuBar); 
    root.getChildren().add(_canvas); 

    primaryStage.setScene(new Scene(root)); 

    primaryStage.show(); 
} 
+0

你的_canvas是什麼?由於您將其添加到組中,而不是任何類型的佈局窗格,因此它可能會位於菜單頂部並消耗鼠標事件。 –

+0

@James_D這正是問題所在。註釋允許菜單顯示的畫布。 – SpicyWeenie

回答

0

使用BorderPane;將MenuBar放在頂部(borderPane.setTop(menuBar);)和其他內容在中心。