如何使JavaFX对话框的所有者成为另一个对话框?

时间:2017-07-20 16:01:22

标签: java javafx javafx-8

我有一个LoginDialog。将从LoginDialog打开RecoverPasswordDialog。我找到了一种方法使LoginDialog成为RecoverPasswordDialog的所有者。

这是我的代码:

public class LoginDialog extends Dialog<String> {

    @FXML
    public void handleForgotPasswordClick() {

         RecoverPasswordDialog dlg = new RecoverPasswordDialog();

         dlg.initOwner(LoginDialog.this); // ERROR because LoginDialog is not Window

         dlg.show();
    }
}

我知道我可以这样做

dlg.initOwner(primaryStage);
OR
dlg.initOwner(LoginDialog.this.getOwner());

但是,如果我这样做,LoginDialog不是RecoverPasswordDialog的父级。

有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:1)

你可以做到

dlg.initOwner(getDialogPane().getScene().getWindow());

(这是获取相关窗口的一种迂回方式,但它应该有效,而且我看不到更直接的东西。)