2016-11-07 1 views
0

Есть ли способ вызвать функцию в контроллере, когда этап, содержащий вид, подключенный к контроллеру, закрыт? Предположим, я хочу вызвать функцию очистки (например, сохранить изменения) на каждом контроллере на моей сцене, когда окно закрыто.JavaFX: вызов функции на контроллере, когда соответствующий этап закрыт

ответ

0

Обычно вы поместите содержимое файла FXML в стадию (через сцену) с внешней стороны FXML и контроллера. Таким образом, вы должны добавить код, в котором вы действительно имеете доступ к этапу, чтобы сделать это. Вы можете определить метод в классе контроллера для вызова, когда вам нужно сделать «зачистку»:

public class Controller { 

    // injected fields, etc... 

    public void initialize() { 
     // initialization code... 
    } 

    // event handlers, etc... 

    public void shutdown() { 
     // cleanup code here... 
    } 
} 

Теперь при загрузке FXML и отобразить его содержимое в окне, вы можете зарегистрировать обработчик с этапом который вызывает метод отключения контроллера:

+0

Большое спасибо, что сделал трюк. Я также добавил код для вызова методов «выключения» вложенных контроллеров, включенных в основной контроллер. – YellowSub

Смежные вопросы