Подтвердить что ты не робот

Java-прослушиватель при закрытии диалогового окна

У меня есть приложение 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 закрыто, так что я могу вызвать метод обновления и обновить список из базы данных.

4b9b3361

Ответ 1

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

addNewDialog.addWindowListener(someWindowListener);

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

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

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

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

Ответ 2

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