我正在尝试做类似于此人要求的事情:Closing a substage

除了没有点击按钮,我正在使用菜单项和“onAction”调用 .

我试图关闭的窗口是一个子窗口 . 我的主要FXML有一个菜单项,按下后打开窗口 . 然后second.fxml有一个菜单项来关闭窗口 . second.fxml有自己的控制器(“FXMLSecondController.java”)......但是在“FXMLPrimaryController.java”中打开了舞台 .

我的FXML菜单项如下所示:

<MenuItem text="Close" onAction="#closeThisWindow" />

然后在FXMLSecondController.java中我有:

@FXML
private void closeThisWindow(ActionEvent event) {
    if (closeWindowDialog()) {
        //close the window

        new EventHandler<ActionEvent>() {
            @Override public void handle(ActionEvent aE){

               Node source1;
                source1 = (Node) aE.getSource();
                Stage stage = (Stage) source1.getScene().getWindow();
                stage.close(); 
            }
        };
    } else {

    }
}

(注意“closeWindowDialog()”是一个打开Yes / No对话框并返回true / false的函数)

我似乎无法访问我从中调用此菜单项的阶段...

PS . 我正在使用JavaFX / Java 8和NetBeans 8.没有Scene Builder .

回答:

在这里找到答案:Unable to get Scene from MenuItem in JavaFX那是我的问题 .