用java写了一个简单的扫描器,因功能需要用了多个Jpanel,但是一个Jpanel执行扫描时不能点击另外的Jpanel了,整个软件卡死要等到那个Jpanel的扫描执行完才行(本人菜鸟的理解,应该是执行扫描的Jpanel不影响其他Jpanel的,而且我用了线程池执行扫描)。请问各位这个问题是什么原因,要如何解决或者避免呢?谢谢大家!
如果描述得不够具体,可以看看出现这个问题的项目,地址:
https://github.com/theLSA/lsa...
用java写了一个简单的扫描器,因功能需要用了多个Jpanel,但是一个Jpanel执行扫描时不能点击另外的Jpanel了,整个软件卡死要等到那个Jpanel的扫描执行完才行(本人菜鸟的理解,应该是执行扫描的Jpanel不影响其他Jpanel的,而且我用了线程池执行扫描)。请问各位这个问题是什么原因,要如何解决或者避免呢?谢谢大家!
如果描述得不够具体,可以看看出现这个问题的项目,地址:
https://github.com/theLSA/lsa...
15 回答8.4k 阅读
7 回答5.3k 阅读
8 回答6.2k 阅读
4 回答4k 阅读
2 回答5.9k 阅读✓ 已解决
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
问题解决了,是因为swing是线程不安全的,是单线程设计,我的程序执行任务的时候在事件派发线程里,所以组件没能更新导致卡死现象,把耗时的任务单独开一个工作线程运行就不会卡死了。详情可以参考我的总结:http://www.lsablog.com/progra...