Как закрыть подэтап с помощью функции меню в JavaFX/FXML/Java8?

Я пытаюсь сделать что-то похожее на то, о чем просил здесь человек: Закрытие подэтапа

за исключением того, что вместо нажатия кнопки я делаю это с помощью пункта меню и вызова «onAction».

Окно, которое я пытаюсь закрыть, является подокном. В моем основном FXML есть пункт меню, который при нажатии открывает окно. Затем второй.fxml имеет пункт меню, чтобы закрыть окно. Второй.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()» — это функция, которая открывает диалоговое окно «Да/Нет» и возвращает значение «истина/ложь»).

Кажется, я не могу получить доступ к сцене, с которой я вызываю этот пункт меню из...

PS. Я работаю с JavaFX/Java 8 и NetBeans 8. Нет построителя сцен.

ОТВЕЧАТЬ:

Нашел ответ здесь: Невозможно получить сцену из MenuItem в JavaFX Это была моя проблема.


person adeena    schedule 27.02.2014    source источник
comment
Вы получили ответ?   -  person ItachiUchiha    schedule 27.02.2014
comment
Да, я добавил это к вопросу. Если бы я мог закрыть вопрос найденным ответом, я бы так и сделал.   -  person adeena    schedule 27.02.2014
comment
Вы можете ответить на свой вопрос, но вам придется подождать некоторое время, прежде чем вы сможете ответить на свой собственный вопрос! :D   -  person ItachiUchiha    schedule 27.02.2014
comment
Просто интересно, как вы используете Java 8; Почему бы вам не реализовать метод handle() как лямбда-выражение, если вы все равно используете Java 8?   -  person skiwi    schedule 28.02.2014
comment
Я еще не начал осваивать лямбда-выражения... это в списке дел!   -  person adeena    schedule 28.02.2014