Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-仅在关闭时处理JFrame?_Java_Swing_Dispose - Fatal编程技术网

Java-仅在关闭时处理JFrame?

Java-仅在关闭时处理JFrame?,java,swing,dispose,Java,Swing,Dispose,在我的Java程序中,我希望无论其他窗口是否打开,只要用户单击角落中的红色X,就关闭了摆动框架。我在关闭和其他窗口侦听器上尝试了JFrame.DISPOSE\u,但当我退出一个JFrame时,系统仍然退出 为了澄清,假设有两个jframe可见,退出一个会自动退出另一个,系统也会退出。关于如何只关闭一个JFrame有什么想法吗?谢谢。Finnw是正确的-我设置了一个新的WindowListener(尽管它从未调用System.exit(),除非它在默认情况下调用),但我现在可以处理它了。谢谢大家这

在我的Java程序中,我希望无论其他窗口是否打开,只要用户单击角落中的红色X,就关闭了摆动框架。我在关闭和其他窗口侦听器上尝试了JFrame.DISPOSE\u,但当我退出一个JFrame时,系统仍然退出


为了澄清,假设有两个jframe可见,退出一个会自动退出另一个,系统也会退出。关于如何只关闭一个JFrame有什么想法吗?谢谢。

Finnw是正确的-我设置了一个新的WindowListener(尽管它从未调用System.exit(),除非它在默认情况下调用),但我现在可以处理它了。谢谢大家

这对我很有用:

public class Test {

    public static class TestFrame implements Runnable{
        public void run() {
            JFrame frame = new JFrame();
            frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
            frame.setSize(200, 300);
            frame.setVisible(true);
        }
    }

    public static void main(String[] args) {
        EventQueue.invokeLater(new TestFrame());
        EventQueue.invokeLater(new TestFrame());
    }
}

如果处理了唯一运行的帧,系统将在一小段时间不活动后退出。Robert-即使其他帧打开,系统也会退出,同时也会关闭它们,这是我手头的问题。可能您仍然有一个
WindowListener
调用
system.exit()
?您确定没有设置exit\u ON\u CLOSE吗,类似:frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);感谢您花时间编写测试-当我单击X时,有一个WindowHandler冗余地退出了系统,覆盖了DefaultClose操作。我还需要做些什么来结束这个问题吗?如果你接受一个答案(包括你自己的答案),人们可能会停止回答它。。。但是没有任何东西可以关闭它-这样其他人也可以从答案中学习,甚至可以从任何未来的答案中学习。您需要单击正确答案旁边的勾号以接受该答案