Java. Качели. Сделайте setDefaultCloseOperation, чтобы закрыть текущий кадр, но также открыть другой кадр, когда кнопка X нажата в правом верхнем углу. - PullRequest
0 голосов
/ 22 марта 2020
import javax.swing.*;

public class B extends JFrame {

    B(){
        this.setSize(1000,1000);
        this.setVisible(true);
        A a = new A();
        this.setDefaultCloseOperation(a.setVisible(true));
    }
}

Хорошо, у меня есть два фрейма: кадр A и кадр B. Когда программа выполняет, открывается кадр A. При нажатии кнопки в кадре A рамка A скрывается, а рамка B открывается. Мне нужно избавиться от кадра B и снова сделать кадр A видимым, когда в кадре B нажата кнопка X по умолчанию. Я использую Swing и не могу понять это. Если в стеке уже есть решение, я не смог бы его найти, но был бы признателен за ссылку. Спасибо.

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

1 Ответ

1 голос
/ 22 марта 2020

Задумывались ли вы о добавлении слушателя?

 this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

    this.addWindowListener(new WindowAdapter() { 
        @Override
        public void windowClosing(WindowEvent e) { 
                a.setVisible(true)
        }
    });
...