杀死一个java swing GUI(真的,一切都死了)

杀死一个java swing GUI(真的,一切都死了),java,swing,resources,kill,terminate,Java,Swing,Resources,Kill,Terminate,我以编程方式启动swing GUI并存储引用。 我想在用户输入时关闭GUI以优化性能 如果我在JFrame上执行dispose,计时器和线程仍在工作 如何简单地实现JFrame终止及其所有子线程和资源?通常,如果Java中无法实现某些功能,那是因为它不能在多个平台上移植。不允许关闭Java SWING事件处理程序的设计决策可能是因为某些操作系统不允许启动GUI进程两次 那么,为什么您认为关闭这些线程很重要?问你自己这样一个问题:是因为它们在调试模式下查看程序时会让你感到烦恼,还是有真正的可测量的

我以编程方式启动swing GUI并存储引用。 我想在用户输入时关闭GUI以优化性能

如果我在JFrame上执行dispose,计时器和线程仍在工作


如何简单地实现JFrame终止及其所有子线程和资源?

通常,如果Java中无法实现某些功能,那是因为它不能在多个平台上移植。不允许关闭Java SWING事件处理程序的设计决策可能是因为某些操作系统不允许启动GUI进程两次


那么,为什么您认为关闭这些线程很重要?问你自己这样一个问题:是因为它们在调试模式下查看程序时会让你感到烦恼,还是有真正的可测量的性能影响?

要清楚,当GUI被用户杀死时,我希望应用程序继续运行。GUI所做的哪些事情需要大量CPU?如果GUI所做的任何事情都不消耗大量CPU,那么它就无关紧要了。作为旁白。这个问题的核心是“看不到战略的目标”。你的目标是什么,你想通过via提供什么实际的程序功能杀死GUI’(顺便说一句,这听起来像胡说八道)?我甚至敢说,如果你有与UI相关的
计时器
s和
线程
s,它们在处理UI时不会自行清理,那么你就写了一个内存泄漏。没有什么神奇的方法可以修复你以前必须使用JProfiler的问题,在那里你可以找到所有保存在JVM内存中的打开的对象在我的情况下,我的用户可以杀死GUI并用控制台UI重新启动它。若在几个月内完成,它可能是重要的。@LucasM:请给我们一个简单的、可复制的重要例子
while(true){JFrame frame=new JFrame();frame.setVisible(true);frame.dispose();
不会泄漏任何内存或创建三个以上的线程。