代码之家  ›  专栏  ›  技术社区  ›  Istao

doClick需要在调度线程上吗?

  •  0
  • Istao  · 技术社区  · 14 年前

       public void doClick(int pressTime) {
            Dimension size = getSize();
            model.setArmed(true);
            model.setPressed(true);
            paintImmediately(new Rectangle(0,0, size.width, size.height));
            try {
                Thread.currentThread().sleep(pressTime);
            } catch(InterruptedException ie) {
            }
            model.setPressed(false);
            model.setArmed(false);
        }
    

    谢谢。

    1 回复  |  直到 14 年前
        1
  •  1
  •   camickr    14 年前

    调用doClick()方法最终将生成ActionEvent,因此将调用ActionListener。所有侦听器都应该在EDT上执行。

    我想在edt上执行睡眠法是不好的,

    此睡眠值预计为mmilliseconds,而不是分钟,以模拟用户单击按钮,因此您将看到按钮在按下状态下绘制,然后返回到正常状态。所以阻断EDT几毫秒不是问题。