How can I close a JFrame by click on a button?
I would like to have a button in my window such that if I click 开发者_JAVA百科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?
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 has the correct answer. Regarding the compiler warnings: hide() is a deprecated call belonging to Window. Don't ever use it, stick with setVisible().
Use dispose()
on the frame object.
精彩评论