Swing不是线程安全的,因此,如果您尝试在同一线程中更新UI,则将出现“应用程序冻结”行为。要解决此问题,您需要将UI更新过程委派给另一个线程。这是使用SwingUtilities.invokeLater(Java
5和更低版本)方法和/或SwingWorker类(自Java 6开始)实现的。
一些链接:
- http://docs.oracle.com/javase/tutorial/uiswing/concurrency/worker.html
- http://docs.oracle.com/javase/7/docs/api/javax/swing/SwingWorker.html
- http://java.sun.com/products/jfc/tsc/articles/threads/threads1.html
- http://forum.precall.net/topic/56804-swing-thread-safety-how-to-properly-modify-components/
Google搜索:https:
//www.google.com.br/search?q = swing + thread +
safe
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)