Dispose actually disposes the window and all its associated components. Hide just hides the JFrame, in case you wish to make the window visible again with the same state(s) it had when it was closed.