2016-04-28 25 views
0

有人能解释对象在Java Swing中的用途EventQueue有人可以解释EventQueue对象的用途吗?

我对如何应用排队事件感到困惑。也许提供通用的事件队列会很有帮助。

+0

*“.. EventQueue对象服务于Java Swing?”*虽然Swing使用它,但EventQueue来自AWT。 –

+0

我大多数情况下,你不会与'EventQueue'交互。 EventQueue是由Event Dispatching Thread处理的一系列事件,这些事件被传递给组件和感兴趣的各方,以便提供有关事件的通知,如鼠标点击或键盘事件。 EventQueue提供了一个“顺序”的概念,其中事件只能以线性方式一个接一个地发生,并且通常按时间顺序排列(所以如果我先移动鼠标,我的击键不能打赌我的鼠标事件) – MadProgrammer

回答

2

因为Swing是single threaded,它采用了EventQueue举行的Runnable实例,以便他们可以派出顺序并在顺序贴,无论是由系统或程序产生。 必需品的用法是通过EventQueue.invokeLater()发布事件,这可确保在event dispatch thread上构建并操纵Swing GUI对象只有。您可以使用您自己的实施替换AWT EventQueue,如here所示,以查看放入队列中的事件。