【问题标题】:How to create dialog in JavaFX如何在 JavaFX 中创建对话框
【发布时间】:2013-04-11 10:54:36
【问题描述】:

我测试过在 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 菜单项时显示带有作者信息的简单对话窗口。请告诉我如何纠正我的错误?

【问题讨论】:

标签: java javafx-2 javafx


【解决方案1】:

我将http://sourceforge.jp/projects/jfxmessagebox/wiki/JfxMessageBox 用于我的消息框。我希望这会有所帮助。

【讨论】:

    【解决方案2】:

    你可以试试我的自定义对话框。访问FXDialog公共存储库。

    【讨论】:

      【解决方案3】:

      这几天我也在寻找 FX 对话功能。在我尝试编写自己的复杂对话框之前,我遇到了“救世主”ControlsFX [这里] (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());
          }
      

      【讨论】:

        猜你喜欢
        • 2012-12-19
        • 2016-09-20
        • 1970-01-01
        • 2016-02-10
        • 1970-01-01
        • 2017-07-15
        • 2015-02-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多