Roman
Roman

Reputation: 131038

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 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?

Upvotes: 3

Views: 6581

Answers (3)

avinash
avinash

Reputation: 21

Use dispose() on the frame object.

Upvotes: 2

Daniel Rikowski
Daniel Rikowski

Reputation: 72504

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.

Upvotes: 10

Jason Nichols
Jason Nichols

Reputation: 11733

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().

Upvotes: 2

Related Questions