Я хочу снова автоматически отобразить окно предупреждения после его закрытия, это зависит от определенного условия.Вот мой код:
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();
где-то еще.Я видел здесь , что вам нужно вызвать метод setOnHiding
для программного закрытия события.Если я удалю обработчик события, предыдущий этап закроется.Но я хочу открыть новый экземпляр этой стадии снова после ее закрытия.Пожалуйста, помогите.
Редактировать: ... да, я проверил для переменной nextItem
это было true
,
Я использовал System.out.println("Next Item: " + nextItem);