私はいくつかの奇妙なレガシーコードを扱っています。それらには、JPanelを実装するカスタムオブジェクトがあります。このJPanel
オブジェクトは、メインアプリケーション内のセカンダリポップアップ画面です。私が抱えている問題は、セカンダリポップアップ画面が閉じられたことを検出することです。
WindowListener
クラスにを実装しようとしましたが、追加しようとすると、JFrame
このオブジェクトに関連付けられていません。これは、カスタムオブジェクトを使用していて、埋め込まれたポップアップ画面であるためだと思います。
私は使用して取得しようとしましたJFrame
:
JFrame parentFrame = (JFrame) SwingUtilities.getWindowAncestor(this);
これはで失敗しますNullPointerException
。このページの右隅の「x」閉じるボタンを検出するのがなぜそれほど難しいのかわかりません。に埋め込まれているテーブルにマウスリスナーとキーリスナーを追加できたことに言及する必要がありますJPanel
。しかし、ウィンドウ全体の外部リスナーが問題を引き起こしています。
(ご容赦ください。これは私の最初のstackoverflow投稿であり、Swingは初めてです。)
どうもありがとうございました!