2013-04-18 10 views
0
내가 자바 FX 간단한 대화 상자를 만들 테스트

에서 대화 상자를 만들 수 있지만, 어떤 이유로 코드가 작동하지 않는 방법 : 나는 저자와 간단한 대화 창을 표시 About 메뉴 항목을 클릭하면 자바 FX

MenuBar menuBar = new MenuBar(); 

     // File menu - new, save, exit 
     Menu menu = new Menu("File"); 
     menu.getItems().add(new MenuItem("New")); 
     menu.getItems().add(new MenuItem("Save")); 
     menu.getItems().add(new SeparatorMenuItem()); 

     menuBar.getMenus().add(menu); 

     // Options menu - Preferences 
     Menu options = new Menu("Options"); 
     options.getItems().add(new MenuItem("Preferences")); 

     menuBar.getMenus().add(options); 

     // Help menu - About 
     Menu help = new Menu("Help"); 
     MenuItem about = new MenuItem("Exit"); 


     about.setOnAction(new EventHandler<ActionEvent>() { 
      @Override 
      public void handle(ActionEvent e) { 
       Stage dialogStage = new Stage(); 
       dialogStage.initModality(Modality.WINDOW_MODAL); 
       dialogStage.setScene(new Scene(VBoxBuilder.create(). 
         children(new Text("Hi"), new Button("Ok.")). 
         alignment(Pos.CENTER).padding(new Insets(5)).build())); 
       dialogStage.show(); 
      } 
     }); 

     menuBar.getMenus().add(help); 

     menuBar.prefWidthProperty().bind(primaryStage.widthProperty()); 

     root.getChildren().add(menuBar); 
     primaryStage.setScene(scene); 
     primaryStage.show(); 

내가 원하는 정보. 제 실수를 바로 잡는 법을 말씀해 주시겠습니까?

+3

정보 메뉴 항목이 보이십니까? 표시된 코드에서 메뉴에 추가되지 않습니다 ... – Puce

+0

유사 : [JavaFX 2.1에서 모달 창을 만드는 방법] (http://stackoverflow.com/questions/10486731/how-to-create-a-modal -window-in-javafx-2-1), [JavaFX 2.0에서 공통 대화 상자 (오류, 경고, 확인) 생성 및 표시 방법] (http://stackoverflow.com/questions/8309981/how-to-create javafx-2) 및 [JavaFX 2.1 MessageBox] (http://stackoverflow.com/questions/11662857/javafx-2-1-messagebox)를 참조하십시오. – jewelsea

답변

2

내 사용자 지정 대화 상자를 사용해 볼 수 있습니다. 공개 레포지토리 FXDialog을 방문하십시오.

1

나는 또한 며칠 동안 FX 대화 상자 기능을 찾고있었습니다. 필자가 직접 복잡한 대화 상자를 작성하기 전에 "savior"ControlsFX [여기] (http://fxexperience.com/)를 발견했습니다. 그것은 나에게 기적처럼 작동합니다. 그러나, 당신은 JDK8로 업그레이드해야 할 것입니다. FX8에 대한 ControlFX의 놀라움을 충분히 경험하십시오. 조만간 JDK8을 사용하게 될 것입니다.

내 원래 코드가 너무 복잡해지기 전에 너무 복잡해지기 때문에 다행입니다. :)

희망이 게시물은 또한 50000 JAVAer 피드. 다음 샘플 코드를 사용하여 작동 방식을 확인하십시오.

Action response = Dialogs.create() 
     .owner(null) 
     .title("Confirmation") 
     .masthead("Are you sure to delete UserLevel: '"+ul.getLevelname()+"' ?") 
     .message(entry) 
     .showConfirm(); 

    System.out.println("response: " + response);   


    if (response.toString().equals("YES")){ 
     if(!Main.db.em.getTransaction().isActive()) 
      Main.db.em.getTransaction().begin(); 

     Main.db.em.remove(ul); 
     Main.db.em.getTransaction().commit(); 
     tbvMain.getItems().remove(tbvMain.getSelectionModel().getSelectedIndex()); 
    }