java - 关闭当前窗口并弹出上一个窗口(windowListener)

标签 java swing jframe windowlistener

我有一个服务器/客户端应用程序。系统启动后,会弹出登录窗口。单击“连接”时,会弹出另一个 JFrame(游戏框架)。我想要的是: 当单击游戏框架上的“X”时 - 当前用户的游戏将停止,登录窗口将再次弹出。

简而言之 - 当单击“X”时 - 终止当前进程,关闭窗口并弹出前一个窗口。 剩下的就是实现“windowClosing()”方法,但我不知道如何实现。 这是我所拥有的:

    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.awt.Toolkit;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import javax.swing.JFrame;

    public class GameplayFrame extends JFrame {

    private GECanvas canvas;

    public GameplayFrame() {
        super("BattleCity");
        canvas = new GECanvas();
        getContentPane().setLayout(new BorderLayout());
        canvas.setPreferredSize(new Dimension(600, 600));
        getContentPane().add(canvas, BorderLayout.CENTER);
        setResizable(false);
        pack();
        Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
        int x = (dim.width - getSize().width) / 2;
        int y = (dim.height - getSize().height) / 2;
        setLocation(x, y);
        setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
        addWindowListener(new NaBabaMiShortite());
    }

    private class NaBabaMiShortite extends WindowAdapter {

        @Override
        public void windowClosing(WindowEvent e) {

                // TO-DO
        }
    }

    public GECanvas getCanvas() {
        return canvas;
    }
}

最佳答案

不要终止该进程。只需在两个窗口上调用 setVisible() 即可根据需要使它们可见或隐藏。

关于java - 关闭当前窗口并弹出上一个窗口(windowListener),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10848516/

相关文章:

java + sqlite : how to open database as read-only?

java - JTable 不会显示在 JPanel 上

java - JFrame 内的图像 - Swing/AWT

在继续之前要渲染 Java Swing JFrame

java - 更新内容时重新创建 JTable

java - 滚动条不适用于我的 JTextArea

java - 我是 JavaFX 新手。我需要有关如何使 TreeView 节点可拖动和可放置的帮助

java - 我应该如何在java中实现子字符串函数?

java - Jar 找不到主类

java - 我的标签未显示在 GUI 前缀表达式程序中