views:

168

answers:

3

I would like to have a button in my window such that if I click it (button) the window is closed.

I found out that I can close a window in the following way:

referenceToTheFrame.hide(); //hides the frame from view
refToTheFrame.dispose(); //disposes the frame from memory

But if I do this way, compiler complains:

Note: myProgram.java uses or overrides a deprecated API
Note: Recompile with -Xlint:deprication for details.

Do I do something unsafe?

+9  A: 

The recommended way is to use:

referenceToTheFrame.setVisible(false)

The hide method is deprecated and should not longer be used. (Although internally setVisible will call hide or show)

Additionally if you want to dispose the frame, you have to call dispose manually. (In case you need the window-closed event for example) A call to setDefaultCloseOperation doesn't help you here, because it only affects the behavior after a click on the close button from the system menu.

See the Swing documentation for further information.

DR
+2  A: 

DR has the correct answer. Regarding the compiler warnings: hide() is a deprecated call belonging to Window. Don't ever use it, stick with setVisible().

Jason Nichols
A: 

use dispose() on frame object

avinash