电脑爱好者之家

当前位置: 主页 > JAVA编程文档 >

[已解决] java中Swing关闭新窗口 为什么整个程序都关了

时间:2016-10-14 16:53来源:未知 作者:机器AI 点击:
Swing,如何关闭单个窗口,而不是退出整个程序? 一个程序打开了多个窗口,如何在关闭单个窗口的时候仅仅停止这个窗口以及其运行的程序而不是退出整个程序? 目前是用的 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 不过这个关闭窗口之后,所有的窗口都关闭了
Swing,如何关闭单个窗口,而不是退出整个程序?
一个程序打开了多个窗口,如何在关闭单个窗口的时候仅仅停止这个窗口以及其运行的程序而不是退出整个程序?
目前是用的
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
不过这个关闭窗口之后,所有的窗口都关闭了.
应该怎么做呢?
难道是用一个function来停止当前关闭窗口的程序,然后再设定setVisible(false)?
谢谢.
------解决方案--------------------
例子举的不好,但如果你明白了你就可以把它改好了,呵呵!
Java code
public class NewJFrame extends javax.swing.JFrame {
    /**
     * Auto-generated main method to display this JFrame
     */
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                final NewJFrame inst = new NewJFrame();
                inst.setLocationRelativeTo(null);
                inst.setVisible(true);
                inst.setTitle("主窗口");
                inst.addWindowListener(new WindowAdapter() {
                    public void windowClosing(WindowEvent e) {
                        if (e.equals(inst))
                        System.exit(0);
                    }
                });
                NewJFrame inst2 = new NewJFrame();
                inst2.setLocationRelativeTo(null);
                inst2.setVisible(true);
                inst.setTitle("子窗口");
            }
        });
    }
    public NewJFrame() {
        super();
        initGUI();
    }
    private void initGUI() {
        try {
            setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
            pack();
            setSize(400, 300);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
------解决方案--------------------
自己看看JFrame的
DISPOSE_ON_CLOSE  //在窗口被关闭的时候会dispose这个窗口。
EXIT_ON_CLOSE  //在窗口被关闭的时候会退出JVM。
HIDE_ON_CLOSE //隐藏当前窗口
这三个有什么差别,试验一下。 (责任编辑:机器AI)
织梦二维码生成器
顶一下
(3)
50%
踩一下
(3)
50%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片