不明白你的需求。当前线程为EDT,目标调用需在EDT中执行时:同步调用,直接调用即可。
异步调用,可以用 SwingUtilities.invokeLater(Runnable)如果没有需要后台线程运行的东西,就不要用 SwingWorker 。

解决方案 »

  1.   

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

  2.   


    假如按钮点下去,正在执行事件,则EDT被占用,此时“又点击了一次”,点击事件会被排进队列,等本次事件被执行完之后再执行。简短回答是: 会执行两次。要不要处理则看需求,如果按钮事件引发的操作明显耗时,那直接在ui线程处理可能不是好的设计,因为用户看到的是按钮按下去以后界面就卡住不动。
      

  3.   

    http://blog.csdn.net/raistlic/article/details/17375319
      

  4.   


    假如按钮点下去,正在执行事件,则EDT被占用,此时“又点击了一次”,点击事件会被排进队列,等本次事件被执行完之后再执行。简短回答是: 会执行两次。要不要处理则看需求,如果按钮事件引发的操作明显耗时,那直接在ui线程处理可能不是好的设计,因为用户看到的是按钮按下去以后界面就卡住不动。多谢了。