背景情報:
以下で構成されるビジュアルダイアグラムエディターを実装しています
- さまざまな複雑な要素 (サイズ変更可能、タイトル バー、サブ要素付き) および
- さまざまな単純な要素 (サイズ変更不可、タイトル バーなし、サブ要素なし)。
すべての要素はドラッグ可能です。
概略図の要素を表すために、JInternalFrame (複雑な要素の場合) と JPanel (単純な要素の場合) を使用しています。これらすべての要素を含むコンテナー (JDesktopPane または JLayeredPane) があります。
この概念にはいくつかの問題があります。
ケース 1 - コンテナーが JDesktopPane の場合:
- JInternalFrames は、常に他の要素の上にあります。
- 他の要素をクリックしても、以前にアクティブだった JInternalFrame が「非アクティブ化」されない
ケース 2 - コンテナーは JLayeredPane です。
- JInternalFrame 内のいくつかの要素をクリックすると、永久に「アクティブ化」されたままになります。
ケース 3 - JInternalFrame はすべてに使用されますが、単純な要素の装飾はありません。
- カスタム枠(JInternalFrame のタイトル バーを手動で削除するときに必要)は、JInternalFrame をアクティブ化/非アクティブ化した後、常に現在の LAF 枠に置き換えられます。
とにかく、JInternalFrames をアクティブ化する背後にある概念全体がわかりません。 JInternalFrame をまったくアクティブにできないようにすることができれば、ケース 2を選択できます。
与えられた問題に対する単純で直接的な解決策は何か、私にアドバイスしてください。
注: コンポーネントの選択と JInternalFrame のアクティブ化は別のもののようです。