javadoc の HIDE_ON_CLOSE デフォルト オプションは、
登録された WindowListener オブジェクトを呼び出した後、フレームを自動的に非表示にします。
では、「HIDE」とは何を意味するのでしょうか。現実のオブジェクトは破壊されますか、それとも単に非表示にしてリソースを使用し続けますか?
javadoc の HIDE_ON_CLOSE デフォルト オプションは、
登録された WindowListener オブジェクトを呼び出した後、フレームを自動的に非表示にします。
では、「HIDE」とは何を意味するのでしょうか。現実のオブジェクトは破壊されますか、それとも単に非表示にしてリソースを使用し続けますか?
HIDE_ON_CLOSE
と同じですJFrame.setVisible(false)
。
その後JFrame
、非表示のみで、目に見えない、何らかの形で破壊されず ( についても同じJFrame.dispose()
)、JFrame.setVisible(true)
画面に再び表示され、変更なしで表示されます。
編集
@giozhが書いたのですが、jframeを破棄したい場合(アプリケーション全体を閉じずに)?
デフォルトでは、別の を作成する理由がないため、理由はありJFrame
ません。使用しないでくださいCardLayout
(画面のサイズJFrame.pack()
を変更する必要がある場合)JFrames
これらすべてObject
が維持され、JVM メモリが増加している場合never will be CG'ed
、JFrame.HIDE_ON_CLOSE
、JFrame.DISPOSE_ON_CLOSE
またはJFrame.setVisible(false)
(あなたが嫌いなケースではCardLayout
)からすべてを削除してJComponents
から、 new 、 set 、および最後のコード行JFrames ContentPane
を追加することができます(すでに表示されているものへのすべての変更が行われ た 後)JComponents
LayoutManager
JFrame
JFrame.(re)validate();
JFrame.repaint();
JFrame.pack();
破壊せずにバックグラウンドに隠し、記憶に留めておく