私が思うに、このバグに関連する問題に対処しています: DefaultDesktopManager は InternalFrame 状態の変更を期待どおりに処理しません。
次のシナリオがあります。
私のアプリケーションは、JFrame
いくつかJInternalFrame
の を持つことができる で構成されています。概要ダイアログとして、JInternalFrame
最大化されてデータ テーブルを表示する があります。ユーザーは、テーブル内のエンティティの詳細ダイアログを開くことができます。詳細ダイアログもJInternalFrame
.
問題: 概要ダイアログが最大化されたため、詳細ダイアログも最大化されます (これは想定外です)。
問題: 詳細ダイアログが閉じられると、概要ダイアログが最大化された状態を失います。ユーザーがこのダイアログの任意のポイントをクリックすると、最大化された状態に戻ります。これはかなり見苦しく、ユーザーを混乱させます。詳細ダイアログを閉じる前に「最大化を解除」すると、概要ダイアログも最大化された状態を失い、この状態のままになります。
JFrame
は、そのすべての に対して 1 つのグローバル状態しか保持できないように思えJInternalFrame
ます。これに対する簡単な回避策を作成する方法がわかりません。誰かが過去にこの問題を抱えていて、私を導くことができるかもしれません。
SSCCE を提供するのは少し難しいですが、これで十分かもしれません。これで詳細ダイアログを表示しています:
DetailDialog detailDialog = new DetailDialog();
applicationFrame.getDesktopPane().add(detailDialog);
detailDialog.setVisible(true);