2014-02-21 1 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

테두리 패널을 사용하십시오. MenuBar를 상단 (borderPane.setTop (menuBar);)에 놓고 다른 내용은 가운데에 놓습니다.

관련 문제