Java-仅在关闭时处理JFrame?
在我的Java程序中,我希望无论其他窗口是否打开,只要用户单击角落中的红色X,就关闭了摆动框架。我在关闭和其他窗口侦听器上尝试了JFrame.DISPOSE\u,但当我退出一个JFrame时,系统仍然退出Java-仅在关闭时处理JFrame?,java,swing,dispose,Java,Swing,Dispose,在我的Java程序中,我希望无论其他窗口是否打开,只要用户单击角落中的红色X,就关闭了摆动框架。我在关闭和其他窗口侦听器上尝试了JFrame.DISPOSE\u,但当我退出一个JFrame时,系统仍然退出 为了澄清,假设有两个jframe可见,退出一个会自动退出另一个,系统也会退出。关于如何只关闭一个JFrame有什么想法吗?谢谢。Finnw是正确的-我设置了一个新的WindowListener(尽管它从未调用System.exit(),除非它在默认情况下调用),但我现在可以处理它了。谢谢大家这
为了澄清,假设有两个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操作。我还需要做些什么来结束这个问题吗?如果你接受一个答案(包括你自己的答案),人们可能会停止回答它。。。但是没有任何东西可以关闭它-这样其他人也可以从答案中学习,甚至可以从任何未来的答案中学习。您需要单击正确答案旁边的勾号以接受该答案