Слушатель Java при закрытии диалога - PullRequest
18 голосов
/ 04 октября 2011

У меня есть приложение Java, которое отображает список из базы данных.Внутри класса есть следующий код для открытия нового диалогового окна для ввода данных:

@Action
public void addNewEntry() {
    JFrame mainFrame = ADLog2App.getApplication().getMainFrame();
    addNewDialog = new AddNewView(mainFrame, true);
    addNewDialog.setLocationRelativeTo(mainFrame);
    addNewDialog.addContainerListener(null);
    ADLog2App.getApplication().show(addNewDialog);
}

Как добавить слушателя в основной класс, чтобы определить, когда закрыто окно addNewDialog, чтобы я мог вызватьметод обновления и обновление списка из базы данных.

Ответы [ 2 ]

41 голосов
/ 04 октября 2011

Если AddNewView является Window, например, Dialog или JDialog, вы можете использовать окно .addWindowListener (...) .То есть в вашем основном классе вы делаете

addNewDialog.addWindowListener(someWindowListener);

, где someWindowListener - это некоторое WindowListener (например, WindowAdapter), которое переопределяет/ Implemetnns windowClosed.

Более полный пример, использующий анонимный класс, может выглядеть как

addNewDialog.addWindowListener(new WindowAdapter() {
    @Override
    public void windowClosed(WindowEvent e) {
        refreshMainView();
    }
});

Соответствующие ссылки:

7 голосов
/ 04 октября 2011

Вы должны добавить WindowListener и переопределить windowClosing Событие, если событие произошло, просто возвращается какой-либо флаг, например здесь

...