下午好。例如,如果我不小心以非常快的速度按了两次按钮,那么快以至于第一次按下的处理仍在进行中,然后第二次也从上面飞了出来。我有2个猜测。
- 它们同时被处理,这意味着它们是两个不同的线程。
- 第一个处理将完成其执行,第二个事件的处理将开始。
哪个论述是对的?如果两者都是错误的,请报告正确的一个。
public void action(ActionEvent event) {
for(int i = 0; i < 1000; i++)
System.out.println(i);
}
{
button.addActionListener(action);
}
在 Swing 中,事件是排队的。事件调度线程从队列中取出事件并一一执行。如果事件到达时事件处理程序仍然忙,则事件将在队列中等待。