swing中MouseListener的mouseClicked事件,如果鼠标操作频率过快,或者在点击的同时有鼠标移动,或者在鼠标快速移动中点击,会捕捉不到事件,但是同样的操作在Win32程序中却可以响应处理.这是由于什么造成的?是swing本身的原因,还是其他什么造成的?如何能解决这个问题呢?
1条回答 默认 最新
- g_johnson_lee 2010-05-19 10:18关注
这个现象是由于Swing的事件处理机制造成的,Swing事件是以队列的形式来执行的,加上Swing组件的重绘与事件处理都是在一个线程里处理的,频率过快会导致队列阻塞。解决这一问题的方法就是采用多线程,将重绘和事件分别采用不同的线程去完成。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报