When you use dispose ( ) method on frames then only system resources used by that Frame is released. The fremae itself is not destroyed , so all the member variables of that frame is still alive. The frame object will be destroyed only when it goes out of scope and Garbage Collector feels it should release the memory help up by that frame. Even if you run System.gc() it is just a hint to Garbage Collector to run . It is totally up to Gabage Collector when it realease the memory used by frame. So System.gc() won't help. And finally, you know there is no user's control in Java Program how and when the memory will be freed, so you cannot do it explicitly. Maximum, you can do is you can set that frame to null.