簡體   English   中英

如何在JavaFX中創建對話框

[英]How to create dialog in JavaFX

我測試了如何在JavaFX中創建簡單對話框,但是由於某些原因,代碼無法正常工作:

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();

我想在單擊About菜單項時顯示帶有作者信息的簡單對話框窗口。 你能告訴我如何糾正我的錯誤嗎?

我將http://sourceforge.jp/projects/jfxmessagebox/wiki/JfxMessageBox用於我的消息框。 我希望這有幫助。

您可以嘗試我的自定義對話框。 訪問FXDialog公共存儲庫。

我也一直在尋找FX對話框功能。 在嘗試編寫自己的復雜對話框之前,我遇到了“救星” ControlsFX [here]( http://fxexperience.com/ )。 對我來說,這就像一個奇跡。 但是,您將必須完全升級到JDK8,以體驗ControlFX在FX8上的奇跡。 我相信每個人遲早都會使用JDK8。

幸運的是,我的原始代碼並沒有變得太復雜,以至於我無法進行這樣的轉換。 :)

希望這篇文章也能養活5000 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());
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM