0

同じクラスを再度呼び出しているスレッドを呼び出しています

TrafficMainGUI traffic=new TrafficMainGUI(storeValue);
traffic.setVisible(true);

しかし、前のクラスオブジェクトを破棄したいのですが、どうすればこれを達成できますか。

TrafficMainGUI は jFrame オブジェクトなので、助けてください??

4

3 に答える 3

2

を適切に破棄するには、破棄するJFrame必要があります。

previousTraffic.dispose();
TrafficMainGUI traffic=new TrafficMainGUI(storeValue);
traffic.setVisible(true);

ドキュメントから:

Releases all of the native screen resources used by this Window, its subcomponents, and all of its owned children. That is, the resources for these Components will be destroyed, any memory they consume will be returned to the OS, and they will be marked as undisplayable.

あなたの質問は、スレッドで何をしているのかについて非常に曖昧です。@MadProgrammer が述べたように、 を使用している場合は、 EDTswingを考慮する必要があります。しかし、より具体的なヘルプを得るには、sscceを提供する必要があります。

于 2013-03-18T08:48:54.930 に答える
0

フレームを非表示にするには、電話するだけです

traffic.setVisible(true);

ただし、作成したインスタンスは削除されませんTrafficMainGUI。Java には自動ガベージ コレクションがあるため、このオブジェクトを参照するすべての参照にアクセスできない場合、このオブジェクトはある時点で自動的に削除されます。たとえば、変数trafficがメソッドスコープで定義されている場合、コードがメソッドを終了すると、変数は廃止されます。そうでない場合は、言うことができますtraffic = null;。これにより、参照が削除されます。

ただし、GC (ガベージ コレクター) には独自の機能があり、オブジェクトを削除するタイミングを自分で決定できることに注意してください。永久に削除しないこともできます。しかし、あなたはそれを気にするべきではありません。

于 2013-03-18T08:51:22.060 に答える
0

このコードを追加します。

traffic = new TrafficMainGUI(newValues);

newトラフィックは新しいオブジェクトによって割り当てられ、関数がメモリ内の新しいオブジェクトを要求するため、以前のオブジェクトは置き換えられます。

于 2013-03-18T08:48:22.533 に答える