j2se 多个Jpanel无法同时工作

用java写了一个简单的扫描器,因功能需要用了多个Jpanel,但是一个Jpanel执行扫描时不能点击另外的Jpanel了,整个软件卡死要等到那个Jpanel的扫描执行完才行(本人菜鸟的理解,应该是执行扫描的Jpanel不影响其他Jpanel的,而且我用了线程池执行扫描)。请问各位这个问题是什么原因,要如何解决或者避免呢?谢谢大家!

如果描述得不够具体,可以看看出现这个问题的项目,地址:
https://github.com/theLSA/lsa...

阅读 3.1k
3 个回答

问题解决了,是因为swing是线程不安全的,是单线程设计,我的程序执行任务的时候在事件派发线程里,所以组件没能更新导致卡死现象,把耗时的任务单独开一个工作线程运行就不会卡死了。详情可以参考我的总结:http://www.lsablog.com/progra...

是不是扫描程序在主线程里跑了?AWT和Swing都不允许这样的。

详情可搜一下AWT和EventQueue。

感谢邀请回答,你说的问题具体在哪个类里我没有找到麻烦指出一下

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题