Как вызвать событие, когда другое окно закрыто? - PullRequest
2 голосов
/ 16 сентября 2011

У меня есть кнопка, которая открывает новое окно, чтобы пользователь мог выполнить некоторые настройки.После закрытия окна конфигурации я хочу перезагрузить конфигурации в окне, которое вызвало окно конфигурации.

Как мне это сделать?

Ответы [ 3 ]

4 голосов
/ 16 сентября 2011

Используйте модальное диалоговое окно для вашего окна конфигурации.Затем, когда диалоговое окно закрыто, выполнение кода продолжится после того, как ваше заявление отобразит окно конфигурации, чтобы вы могли перезагрузить свойства.

3 голосов
/ 16 сентября 2011

Пока форма не освобождается при закрытии, вы все равно можете получить доступ к переменной, представляющей форму, и получить ее свойства и управляющие значения.

РЕДАКТИРОВАТЬ: Хорошо, я немного запутался, но давайтепопробуйте это снова.Существует множество способов решения этой проблемы.

Самый простой способ - просто вызвать форму конфигурации с помощью ShowModal, а затем обработать информацию о конфигурации в событии нажатия кнопки после закрытия формы.

Другой способ заключается в том, чтобы форма конфигурации сохраняла свои значения в выделенном объекте (например, TStringList), а затем отправляла ссылку на этот объект через сообщение в основную форму в OnClose формы конфигурации.Тогда ваша основная форма будет использовать TStringList для получения всей информации о конфигурации, а затем освободить ее.Опять же, это только один из многих способов сделать это.

Очень многое зависит от того, как вы хотите, чтобы все это работало.

1 голос
/ 16 сентября 2011

Вам необходимо реализовать WindowListener. См. , как написать Window Listeners .

WindowAdapter myListener = new WindowAdapter() {
    // maybe you want windowClosing
    public void windowClosed(WindowEvent e) {
        // actions to perform after window is closed
    }
}
// add to a Window (JFrame is a subclass of Window)
myWindow.addWindowListener(this);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...