Как я могу закрыть JFrame, нажав на кнопку? - PullRequest
3 голосов
/ 08 апреля 2010

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

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

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.

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

Ответы [ 3 ]

10 голосов
/ 08 апреля 2010

Рекомендуется использовать:

referenceToTheFrame.setVisible(false)

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

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

Для получения дополнительной информации см. Документацию Swing .

2 голосов
/ 19 октября 2010

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

2 голосов
/ 08 апреля 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...