首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

javax.swing.SwingWorker类的一个有关问题

2013-12-19 
javax.swing.SwingWorker类的一个问题SwingWorker,如果只需要done(),不需要doInBackground(),也就是不需要

javax.swing.SwingWorker类的一个问题
SwingWorker,如果只需要done(),不需要doInBackground(),也就是不需要在另一个线程中做任何事情。那么我在doInBackground()中写return null;它还是要使用另一个线程执行这一句,虽然就只有一句。怎么才能完全不使用另一个线程?
我想使用javax.swing.SwingWorker类来写done()里面的操作,写起来比较简单规范一些,例如可以利用javax.swing.SwingWorker只执行一次的特性,要不然还得自己写控制代码,虽然写也不复杂。
[解决办法]

引用:
假如按钮点下去,正在执行事件,还没弹上来,又点击了一次,会执行两次吗?要不要加点措施,例如按钮setennable=false


假如按钮点下去,正在执行事件,则EDT被占用,此时“又点击了一次”,点击事件会被排进队列,等本次事件被执行完之后再执行。

简短回答是: 会执行两次。

要不要处理则看需求,如果按钮事件引发的操作明显耗时,那直接在ui线程处理可能不是好的设计,因为用户看到的是按钮按下去以后界面就卡住不动。

热点排行