我正在使用Swing前端编写基本的Java应用程序。基本上它通过Apache Cayenne从Derby数据库加载一些数据,然后将其显示在JTable中。我正在Eclipse中进行开发,我不认为这很重要,但我使用Maven进行依赖。Java Swing应用程序在正常模式下运行时挂起,但在调试模式下运行正常
现在这工作正常,当我运行调试但它似乎挂起显示线程时,我使用运行按钮。我做了一个线程转储,我不是100%确定的,但一切看起来不错。我使用Java VisualVM,并且线程在那里看起来很好。
奇怪它似乎间歇性地工作。虽然很容易重现,但它非常一致。如果任何人有任何想法,我都摆脱了他们。
+1用于事件分派线程。我还建议将默认外观切换到Substance(https://substance.dev.java.net/),这会强制*在EDT中执行Swing相关的任务,或者应用程序失败。这对我来说很有用,用于调试。 – 2010-05-07 02:12:56
甜 - 我意识到不同的方式来检查EDT违规,但不知道有一个外观和感觉会做到这一点。 – 2010-05-07 02:42:26
虽然我可能不会依赖L&F来强制执行,因为这个想法是L&F可以插入。对我来说,这听起来像是对外观和感觉的责任的侵犯...... – 2010-05-07 02:54:49