JavaFX - 关闭后自动显示警报框

标签 java events javafx

我想在关闭警告框后自动再次显示警告框,这是基于特定条件的。 这是我的代码:

protected void showInputDialog()
{
    FXMLLoader loader = new FXMLLoader(getClass().getResource("AddRecordDialog.fxml"));
    Parent root = loader.load();
    Scene scene = new Scene(root);
    AddRecordDialogController addRecordDialogController = (AddRecordDialogController)loader.getController();
    addRecordDialogController.setAddNewSalesDialogController(this);
    addRecordDialogController.setInvoice(this.invoice);
    this.addRecordDialog = new Stage();
    this.addRecordDialog.setTitle("Add Record");
    this.addRecordDialog.initModality(Modality.APPLICATION_MODAL);
    this.addRecordDialog.initOwner(root.getScene().getWindow());
    this.addRecordDialog.setScene(scene);
    this.addRecordDialog.sizeToScene();
    this.addRecordDialog.setResizable(false);
    //Event handler for when a Window is closed.
    this.addRecordDialog.setOnHiding(new EventHandler<WindowEvent>()
    {
        @Override
        public void handle(WindowEvent we)
        {
            if(nextItem == true)
               showInputDialog();
            nextItem = false;
        }
    });
    this.addRecordDialog.showAndWait();
}

第二个对话框出现,但第一个对话框没有消失。 该对话框是通过其他地方的 stage.close(); 以编程方式关闭的。 我看到here您需要为以编程方式关闭事件调用 setOnHiding 方法。 如果我删除事件处理程序,前一阶段将关闭。 但我想在关闭后再次打开该阶段的新实例。 请帮忙。

编辑: ...是的,我检查了 nextItem 变量,它是 true

我使用了System.out.println("下一个项目:"+ nextItem);

最佳答案

基于kendavidson的评论,我找到了解决方案。 我已将代码更改为:

        this.addRecordDialog.setOnHidden(new EventHandler<WindowEvent>()
        {
            @Override
            public void handle(WindowEvent we)
            {
                System.out.println("Next Item: " + nextItem);
                if(nextItem == true)
                {
                    nextItem = false;
                    showInputDialog();
                }
            }
        });

谢谢肯达维森。

关于JavaFX - 关闭后自动显示警报框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56027984/

相关文章:

css - 按钮将字体大小更改为某些未指定的

java - App Engine 需要 Java 1.7 或更高版本

javascript - 按 Enter 时超越链接

java - resteasy中添加corsfilter后无法访问服务

c# - 如何编写触发器?

android - 在android中的imageswitcher中获取点击事件和滑动手势?

java - 如何更新 native 构建的 JavaFX 应用程序

java - 当 List<Object> deviceList 更改时更新 JavaFX ListView

java - 如何从 Java Applet 检测当前安全上下文

java - Maven Release Plugin 不更新 dependencyManagement 中的 SNAPSHOT