データベースのリストを表示する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メソッドを呼び出して、データベースからリストを更新できます。
AddNewView
が Window
などの場合 Dialog
または JDialog
、 Window.addWindowListener(...) を使用できます。つまり、メインクラスでは、
addNewDialog.addWindowListener(someWindowListener);
ここで、someWindowListener
は一部の WindowListener
(たとえば、a WindowAdapter
)で、/ implemetnns windowClosed
。
匿名クラスを使用したより完全な例は、次のようになります。
addNewDialog.addWindowListener(new WindowAdapter() {
@Override
public void windowClosed(WindowEvent e) {
refreshMainView();
}
});
関連リンク:
WindowListener を追加してオーバーライドする必要があります window Closing イベント。イベントが発生した場合は、いくつかのフラグを返します。例 here