我有一个LoginDialog。 RecoverPasswordDialog将从LoginDialog中打开。我正在寻找一种方法使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的父级。

有任何想法吗?谢谢!

最佳答案

你可以做

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


(这是获取关联窗口的一种回旋方式,但它应该可以工作,而且我看不到任何更直接的方法。)

10-05 23:56