как закрыть рамку, но открыть новую рамку? - PullRequest
0 голосов
/ 17 декабря 2009

как закрыть рамку, но открыть новую рамку?

У меня есть рамка, (помощь)

когда я нажимаю на мой пункт меню я хочу открыть (mainForm) выход из справки.

new mainForm().setVisible(true); System.exit(0);

я знаю, что это закрывает всю программу, однако как мне заставить его закрыть только текущий кадр

спасибо

Ответы [ 5 ]

6 голосов
/ 17 декабря 2009

Если вы больше не хотите использовать фрейм, вы можете использовать frame.dispose()

Если вы просто хотите скрыть это, используйте frame.setVisible(false).

Если вы расширили фрейм и пытаетесь закрыть его изнутри, используйте this.dispose или this.setVisible(false).

3 голосов
/ 17 декабря 2009

Вы должны переосмыслить свои требования. Для пользователя было бы лучше, чтобы и программа, и окно справки были видны одновременно. Закрытие главного окна при отображении экрана справки и наоборот - очень, очень плохо для удобства использования - вы не должны этого делать. У нас есть оконные графические интерфейсы уже почти 30 лет - показывать несколько окон на экране одновременно - это то, для чего они нужны!

1 голос
/ 17 декабря 2009

Допустим, вы создали свой фрейм так:

 JFrame mainframe = new JFrame("Radio Notes");
//show Frame
mainframe.setVisible(true);
//close the frame  
mainframe.dispose();
1 голос
/ 17 декабря 2009

Я думаю, что вы должны скрыть кадр, который вы не хотите показывать с помощью setVisible (false). System.exit (0) останавливает JVM, заканчивая всю программу.

Короче говоря, семантика setVisible не имеет ничего общего с запуском / остановкой приложения.

Если вы хотите запустить полностью новое приложение, вам нужно взглянуть на Runtime.exec (). Я действительно не знаю, можете ли вы закрыть родительский процесс (приложение справки) с помощью exit ().

0 голосов
/ 17 декабря 2009

попробуйте установить операцию закрытия по умолчанию для JFrame следующим образом.

frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

Затем реализуйте WindowListener , который выполняет действия, которые вы хотите, когда происходит событие закрытия окна.

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