Закрытие в одном окне закрывает все кадры в Java - PullRequest
6 голосов
/ 28 марта 2012

Я бы хотел сделать возможной навигацию по фреймам в java. Когда я закрываю фрейм, оставшиеся открытые фреймы закрываются, и вся программа останавливается.

Пожалуйста, помогите ...

Ответы [ 5 ]

8 голосов
/ 28 марта 2012

Вы, вероятно, использовали

   //this will terminate or exit your application    
   setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Может быть, вы хотите использовать это вместо

   setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);

для справки перейдите по этой ссылке

5 голосов
/ 28 марта 2012

Если вы хотите закрыть только этот один кадр, вы должны сделать что-то вроде этого: setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE)

Если вы хотите закрыть все кадры при закрытии одного кадра, вы можете сделать следующее:

Вы можете использовать окно прослушивания и вызывать System.exit(0);, когда JFrame закрывается, или попробовать setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); на каждом JFrame.Таким образом, ваша программа закроет все фреймы и завершит работу.

Если вам нужно выполнить некоторые задачи перед закрытием приложения, вам, вероятно, следует использовать оконный приемник.

2 голосов
/ 11 мая 2018

Вы также можете сделать это графически. щелкните правой кнопкой мыши на рамке и выберите свойства, и оттуда вы можете изменить это, как показано на рисунке ниже.

enter image description here

1 голос
/ 23 октября 2017

Если вы использовали палитру качелей.В свойствах фрейма выберите операцию закрытия по умолчанию как (Dispose).Следуйте рисунку, приведенному в этом решении.

enter image description here

0 голосов
/ 23 октября 2017

Моя проблема заключалась в том, что я использовал слушателя, который можно найти в базовых уроках:

WindowListener l = new WindowAdapter() {
        public void windowClosing(WindowEvent e) {
            System.exit(0);
        }
    };

    addWindowListener(l);

Я знаю, что он тупой.Я этого не видел, но некоторые люди могли бы сделать то же самое, поэтому я просто оставлю это здесь;)

...