gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 05:54:11 26 4
gpt4 key购买 nike

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

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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com