Как я могу закрыть JFrame, нажав кнопку?

Я хотел бы иметь кнопку в моем окне, чтобы, если я нажму ее (кнопку), окно закрылось.

Я узнал, что могу закрыть окно следующим образом:

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

Но если я сделаю так, компилятор жалуется:

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

Я делаю что-то небезопасное?


person Roman    schedule 08.04.2010    source источник
comment
Вы не хотите, чтобы рамка просто закрывалась, когда вы нажимаете x?   -  person Frederik Wordenskjold    schedule 08.04.2010


Ответы (3)


Рекомендуемый способ - использовать:

referenceToTheFrame.setVisible(false)

Метод hide устарел и больше не должен использоваться. (Хотя внутри setVisible вызовет hide или show)

Кроме того, если вы хотите избавиться от фрейма, вам нужно вызвать dispose вручную. (Например, если вам нужно событие закрытия окна) Вызов setDefaultCloseOperation здесь вам не поможет, потому что он влияет только на поведение после нажатия кнопки закрытия в системном меню.

Дополнительные сведения см. в документации Swing.

person Daniel Rikowski    schedule 08.04.2010

DR имеет правильный ответ. Относительно предупреждений компилятора: hide() — это устаревший вызов, принадлежащий Window< /а>. Никогда не используйте его, придерживайтесь setVisible().

person Jason Nichols    schedule 08.04.2010

Используйте dispose() на объекте кадра.

person avinash    schedule 19.10.2010