Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.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中实际关闭窗口?_Java_Swing_Awt_Frame_Dispose - Fatal编程技术网

如何在Java中实际关闭窗口?

如何在Java中实际关闭窗口?,java,swing,awt,frame,dispose,Java,Swing,Awt,Frame,Dispose,我需要关闭一个JFrame窗口,以便下一次访问它的调用捕获NullPointerException。我尝试了frame.dispose(),但它不起作用,每当我尝试frame.setVisible(true)时,我都会返回该窗口。我该怎么做呢?我建议您重新评估您的程序逻辑,因为您宁愿看到NullPointerException而不是仅仅知道您的代码不会尝试使一个本应已死亡的帧可见,这似乎很奇怪 无论如何,您只需将JFrame实例设置为null,以确保它不再可见。这肯定会给你带来你想要的例外 请记

我需要关闭一个
JFrame
窗口,以便下一次访问它的调用捕获
NullPointerException
。我尝试了
frame.dispose()
,但它不起作用,每当我尝试
frame.setVisible(true)
时,我都会返回该窗口。我该怎么做呢?

我建议您重新评估您的程序逻辑,因为您宁愿看到
NullPointerException
而不是仅仅知道您的代码不会尝试使一个本应已死亡的帧可见,这似乎很奇怪

无论如何,您只需将
JFrame
实例设置为
null
,以确保它不再可见。这肯定会给你带来你想要的例外


请记住,
NullPointerException
应该保留用于指示编程错误,通常是违反API约定。不要用它们来控制程序流,也不要设计一个有意触发它们的程序。

我建议你重新评估你的程序逻辑,因为奇怪的是,你宁愿看到一个
NullPointerException
,而不是仅仅知道你的代码不会试图让一个应该死的帧可见

无论如何,您只需将
JFrame
实例设置为
null
,以确保它不再可见。这肯定会给你带来你想要的例外

请记住,
NullPointerException
应该保留用于指示编程错误,通常是违反API约定。不要用它们来控制程序流程,也不要设计有意触发它们的程序。

当用户按下“X按钮”时?在这种情况下,请使用

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
当用户按下“X按钮”时?在这种情况下,请使用

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

查看此链接以获取一些参考资料:代码太大,无法在此处发布。“我需要关闭JFrame窗口,以便下次调用访问它”应该只有一个
JFrame
,并且从应用程序开始到结束都应该可见(除非用户将其最小化或将其他应用程序放在它前面)。请参阅查看此链接以获取一些参考资料:代码太大,无法在此处发布。“我需要关闭JFrame窗口,以便下次调用访问它”应该只有一个
JFrame
,并且从应用程序开始到结束都应该可见(除非用户将其最小化或将其他应用程序放在它前面)。看,实际上,我已经写了一个大程序(有一些捕获到的
NullPointerException
),如果我能做到这一点,那么我就不需要对我的代码进行太多修改。实际上,我已经写了一个大程序(有一些捕获到的
NullPointerException
),如果我能做到这一点,那么我就不需要对我的代码进行太多修改。这将结束应用程序。使用
JFrame.DISPOSE\u ON\u CLOSE
代替。这将结束应用程序。使用
JFrame。改为在关闭时处理。
frame.dispose();
frame = null;