我对Netbeans 6.9.1和7.0.1 ide都有一个奇怪的问题。我有一个包含几个类的项目,我从UI类调用另一个类的实例,它执行程序的大部分工作。我选择绿色箭头(运行主项目或F6按钮)和应用程序执行,我与我的Java应用程序的UI呈现。我在UI类中创建了一个线程实例,当按下按钮时,执行代码,并使用Thread .start()调用新线程。控制被转移到另一个类,我有一个run()方法调用我的主方法,处理我传递给它的东西。这工作得很好(我认为),但有一个问题:当UI完成执行时,它不会退出,因为我可能需要重新运行UI与其他输入等。这使得IDE表现得好像程序仍在执行,运行主项目,清洁,清洁和构建,调试按钮被阴影/禁用,我拥有的唯一按钮是配置文件和粘贴历史。我可以通过在IDE的控制台输出部分使用双箭头来重新运行应用程序。
我能做些什么来让IDE释放可能仍在后台运行的线程,因为为了获得全部功能,我必须重新启动IDE。
使用join()等待线程完成:http://www.java2s.com/Code/JavaAPI/java.lang/ThreadjoinUsingjointowaitforthreadstofinish.htm
或者尝试使其可中断:www.java2s.com/Code/JavaAPI/java.lang/Threadinterrupt.htm
更简单、更干净、更好:使用Swing Worker线程http://java.sun.com/products/jfc/tsc/articles/threads/threads2.html