AbstractButton.doClick 是否需要位于调度线程上?
如果我查看我读到的 jdk 6 源代码:
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);
}
我想在 edt 上执行 sleep 方法是不好的,所以我想 doClic 方法一定不能在 edt 中,但我没有找到关于这一点的任何文档?
谢谢。
最佳答案
调用 doClick() 方法最终将生成一个 ActionEvent,因此您的 ActionListener 将被调用。所有监听器都应在 EDT 上执行。
I suppose it's bad to exec the sleep method on the edt,
此 sleep 值预计为毫米毫秒,而不是分钟,以模拟用户单击按钮,因此您将看到按钮绘制为按下状态,然后返回到正常状态。因此,阻止 EDT 几个 MS 不是问题。
关于java - doClick 是否需要在调度线程上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3379122/