0

CounterGUI というオブジェクトがあります。GUIを作成します。MyProgramなど、別のクラスで作成します。

MyProgram が CounterGUI オブジェクトを作成したら、オブジェクトを削除するにはどうすればよいですか? 私がこれをするなら言ってください:

CounterGUI first = new CounterGUI(); //displays the GUI
first = null;

オブジェクトを null に設定するとすべて (GUI を含む) が削除されると思いましたが、そうではありません。どうすれば完全に削除できますか?

これが重複した質問であることがわかりません。以前の回答では、null または新しいオブジェクトに設定していましたが、ここでは機能しません。

4

4 に答える 4

1

CounterGUI が であると仮定すると、次のようjava.awt.Windowになります。

  • ウィンドウを非表示にする方法は、 を呼び出すことsetVisible(false)です。

  • ネイティブ ウィンドウから完全に切断する方法は、 を呼び出すことdispose()です。

  • Window が にdisposedなると、(たとえば、nullそれを参照するすべての変数に代入することによって)到達不能にすると、ガベージ コレクションの対象になります。

nullが表示されている間に単純に割り当てWindowても効果はありません。可視の Window オブジェクトは、さまざまなものに接続されているため、ガベージ コレクションが行われません。

于 2013-05-14T05:14:55.870 に答える
0

GUI を非表示にしたい場合は、dispose()

これについて心配する必要はありません.ガベージコレクターは自動的にメモリから取り出します.

自分で呼び出すことができます

System.gc()

しかし、それは悪い習慣であり、確実に収集されるとは限りません。

于 2013-05-14T05:10:23.707 に答える