web-dev-qa-db-ja.com

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ウィンドウが閉じられたことを検出する方法を教えてください。これにより、refreshメソッドを呼び出して、データベースからリストを更新できます。

20
Woodsy

AddNewViewWindow などの場合 Dialog または JDialogWindow.addWindowListener(...) を使用できます。つまり、メインクラスでは、

addNewDialog.addWindowListener(someWindowListener);

ここで、someWindowListenerは一部の WindowListener (たとえば、a WindowAdapter )で、/ implemetnns windowClosed

匿名クラスを使用したより完全な例は、次のようになります。

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

関連リンク:

42
aioobe

WindowListener を追加してオーバーライドする必要があります window Closing イベント。イベントが発生した場合は、いくつかのフラグを返します。例 here

7
mKorbel