java.applet

java.awt

java.awt.color

java.awt.datatransfer

java.awt.dnd

java.awt.event

java.awt.font

java.awt.geom

java.awt.im

java.awt.im.spi

java.awt.image

java.awt.image.renderable

java.awt.print

java.beans

java.beans.beancontext

java.io

java.lang

java.lang.annotation

java.lang.instrument

java.lang.management

java.lang.ref

java.lang.reflect

java.math

java.net

java.nio

java.nio.channels

java.nio.channels.spi

java.nio.charset

java.nio.charset.spi

java.rmi

java.rmi.activation

java.rmi.dgc

java.rmi.registry

java.rmi.server

java.security

java.security.acl

java.security.cert

java.security.interfaces

java.security.spec

java.sql

java.text

java.util

java.util.concurrent

java.util.concurrent.atomic

java.util.concurrent.locks

java.util.jar

java.util.logging

java.util.prefs

java.util.regex

java.util.zip

javax.accessibility

javax.activity

javax.crypto

javax.crypto.interfaces

javax.crypto.spec

javax.imageio

javax.imageio.event

javax.imageio.metadata

javax.imageio.plugins.bmp

javax.imageio.plugins.jpeg

javax.imageio.spi

javax.imageio.stream

javax.management

javax.management.loading

javax.management.modelmbean

javax.management.monitor

javax.management.openmbean

javax.management.relation

javax.management.remote

javax.management.remote.rmi

javax.management.timer

javax.naming

javax.naming.directory

javax.naming.event

javax.naming.ldap

javax.naming.spi

javax.net

javax.net.ssl

javax.print

javax.print.attribute

javax.print.attribute.standard

javax.print.event

javax.rmi

javax.rmi.CORBA

javax.rmi.ssl

javax.security.auth

javax.security.auth.callback

javax.security.auth.kerberos

javax.security.auth.login

javax.security.auth.spi

javax.security.auth.x500

javax.security.cert

javax.security.sasl

javax.sound.midi

javax.sound.midi.spi

javax.sound.sampled

javax.sound.sampled.spi

javax.sql

javax.sql.rowset

javax.sql.rowset.serial

javax.sql.rowset.spi

javax.swing

javax.swing.border

javax.swing.colorchooser

javax.swing.event

javax.swing.filechooser

javax.swing.plaf

javax.swing.plaf.basic

javax.swing.plaf.metal

javax.swing.plaf.multi

javax.swing.plaf.synth

javax.swing.table

javax.swing.text

javax.swing.text

javax.swing.text.parser

javax.swing.text.rtf

javax.swing.tree

javax.swing.undo

javax.transaction

javax.transaction.xa

javax.xml

javax.xml.datatype

javax.xml.namespace

javax.xml.parsers

javax.xml.transform

javax.xml.transform.dom

javax.xml.transform.sax

javax.xml.transform.stream

javax.xml.validation

javax.xml.xpath

org.ietf.jgss

org.omg.CORBA

org.omg.CORBA_2_3

org.omg.CORBA_2_3.portable

org.omg.CORBA.DynAnyPackage

org.omg.CORBA.ORBPackage

org.omg.CORBA.portable

org.omg.CORBA.TypeCodePackage

org.omg.CosNaming

org.omg.CosNaming.NamingContextExtPackage

org.omg.CosNaming.NamingContextPackage

org.omg.Dynamic

org.omg.DynamicAny

org.omg.DynamicAny.DynAnyFactoryPackage

org.omg.DynamicAny.DynAnyPackage

org.omg.IOP

org.omg.IOP.CodecFactoryPackage

org.omg.IOP.CodecPackage

org.omg.Messaging

org.omg.PortableInterceptor

org.omg.PortableInterceptor.ORBInitInfoPackage

org.omg.PortableServer

org.omg.PortableServer.CurrentPackage

org.omg.PortableServer.POAManagerPackage

org.omg.PortableServer.POAPackage

org.omg.PortableServer.portable

org.omg.PortableServer.ServantLocatorPackage

org.omg.SendingContext

org.omg.stub.java.rmi

org.w3c.dom

org.w3c.dom.bootstrap

org.w3c.dom.events

org.w3c.dom.ls

org.xml.sax

org.xml.sax.ext

org.xml.sax.helpers

allclasses-frame

allclasses-noframe

constant-values

deprecated-list

help-doc

JavaTM 2 Platform
Standard Ed. 5.0

java.awt
类 EventQueue

java.lang.Object
  继承者 java.awt.EventQueue

public class EventQueue
extends Object

EventQueue 是一个与平台无关的类,它将来自于基础同位体类和受信任的应用程序类的事件列入队列。

它封装了异步事件指派机制,该机制从队列中提取事件,然后通过对此 EventQueue 调用 dispatchEvent(AWTEvent) 方法来指派这些事件(事件作为参数被指派)。该机制的特殊行为是与实现有关的。指派实际排入到该队列中的事件(注意,正在发送到 EventQueue 中的事件可以被合并)的惟一要求是:

按顺序。
也就是说,不允许同时从该队列中指派多个事件。
指派顺序与它们排队的顺序相同。
也就是说,如果 AWTEvent A 比 AWTEvent B 先排入到 EventQueue 中,那么事件 B 不能在事件 A 之前被指派。

一些浏览器将不同代码基中的 applet 分成独立的上下文,并在这些上下文之间建立一道道墙。在这样的场景中,每个上下文将会有一个 EventQueue。其他浏览器将所有的 applet 放入到同一个上下文中,这意味着所有 applet 只有一个全局 EventQueue。该行为是与实现有关的。有关更多信息,请参照浏览器的文档。

有关事件指派机制的线程问题,请参阅 AWT Threading Issues

从以下版本开始:
1.1

构造方法摘要
EventQueue()
           
 
方法摘要
protected  void dispatchEvent(AWTEvent event)
          指派一个事件。
static AWTEvent getCurrentEvent()
          返回当前正在被 EventQueue(它与正在调用的线程相关)指派的事件。
static long getMostRecentEventTime()
          返回最近事件的时间戳(如果有),该事件从 EventQueue(它与正在调用的线程相关)进行指派。
 AWTEvent getNextEvent()
          从 EventQueue 移除一个事件,并返回它。
static void invokeAndWait(Runnable runnable)
          导致 runnablerun 方法在 EventQueue 的指派线程上被调用。
static void invokeLater(Runnable runnable)
          导致 runnablerun 方法在 EventQueue 的指派线程上被调用。
static boolean isDispatchThread()
          如果正在调用的线程是当前 AWT EventQueue 的指派线程,则返回 true。
 AWTEvent peekEvent()
          返回 EventQueue 上的第一个事件,而不移除它。
 AWTEvent peekEvent(int id)
          返回指定 id(如果有) 的第一个事件。
protected  void pop()
          停止使用此 EventQueue 来指派事件。
 void postEvent(AWTEvent theEvent)
          将一个 1.1 样式的事件发送到 EventQueue 中。
 void push(EventQueue newEventQueue)
          用指定的事件队列替换现有的 EventQueue
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

EventQueue

public EventQueue()
方法详细信息

postEvent

public void postEvent(AWTEvent theEvent)
将一个 1.1 样式的事件发送到 EventQueue 中。如果在队列中存在一个具有相同 ID 和事件源的事件,则调用源 ComponentcoalesceEvents 方法。

参数:
theEvent,java.awt.AWTEvent - 的一个实例,或它的一个子例
抛出:
NullPointerException - 如果 theEventnull

getNextEvent

public AWTEvent getNextEvent()
                      throws InterruptedException
EventQueue 移除一个事件,并返回它。在事件被另一个线程发送之前该方法被阻塞。

返回:
下一个 AWTEvent
抛出:
InterruptedException - 如果另一个线程已经中断了此线程

peekEvent

public AWTEvent peekEvent()
返回 EventQueue 上的第一个事件,而不移除它。

返回:
第一个事件

peekEvent

public AWTEvent peekEvent(int id)
返回指定 id(如果有) 的第一个事件。

参数:
id - 所需事件类型的 id
返回:
指定 id 的第一个事件,如果没有这样的事件,则返回 null

dispatchEvent

protected void dispatchEvent(AWTEvent event)
指派一个事件。指派事件的方式取决于事件的类型和事件的源对象的类型:

事件类型 源类型 指派
ActiveEvent 所有 event.dispatch()
其他 Component source.dispatchEvent(AWTEvent)
其他 MenuComponent source.dispatchEvent(AWTEvent)
其他 其他 无动作(忽略)

参数:
event - java.awt.AWTEvent 的一个实例或它的一个子类
抛出:
NullPointerException - 如果 eventnull

getMostRecentEventTime

public static long getMostRecentEventTime()
返回最近事件的时间戳(如果有),该事件从 EventQueue(它与正在调用的线程相关)进行指派。如果具有时间戳的事件当前正在被指派,则返回它的时间戳。如果还没有事件被指派,则返回 EventQueue 的初始化时间。在 JDK 的当前版本中,只有 InputEventActionEventInvocationEvent 有时间戳;但是,JDK 的未来版本可能将时间戳添加到其他事件类型中。注意,该方法只应该从应用程序事件的指派线程进行调用。如果该方法从另一个线程进行调用,则返回当前系统的时间(由 System.currentTimeMillis() 报告)。

返回:
最后一次 InputEvent 的时间戳,要指派的 ActionEventInvocationEvent,如果该方法在不同于事件指派线程的线程上调用,则返回 System.currentTimeMillis()
从以下版本开始:
1.4
另请参见:
InputEvent.getWhen(), ActionEvent.getWhen(), InvocationEvent.getWhen()

getCurrentEvent

public static AWTEvent getCurrentEvent()
返回当前正在被 EventQueue(它与正在调用的线程相关)指派的事件。只有方法需要访问事件时,该方法才有用,但是该方法并不接受对参数的引用。注意,该方法只应该从应用程序的事件指派线程进行调用。如果从另一个线程调用该方法,则返回 null。

返回:
当前正在被指派的事件;如果在线程上调用而不是在指派线程的事件上调用,则返回 null
从以下版本开始:
1.4

push

public void push(EventQueue newEventQueue)
用指定的事件队列替换现有的 EventQueue。任何挂起的事件都被传输到 EventQueue 以备处理。

参数:
newEventQueue - 要使用的 EventQueue(或其子类的) 的实例
抛出:
NullPointerException - 如果 newEventQueuenull
另请参见:
pop()

pop

protected void pop()
            throws EmptyStackException
停止使用此 EventQueue 来指派事件。任何挂起的事件都被传输到以前的 EventQueue 以备处理。

警告:为了避免死锁,不要在子类中将该方法声明为 synchronized。

抛出:
EmptyStackException - 如果以前没有对该 EventQueue 执行 push 操作
另请参见:
push(java.awt.EventQueue)

isDispatchThread

public static boolean isDispatchThread()
如果正在调用的线程是当前 AWT EventQueue 的指派线程,则返回 true。使用此调用确保给定的任务正在当前 AWT EventDispatchThread 上执行(或没有执行)。

返回:
如果给定的任务正在当前 AWT EventQueue 的指派线程上运行,则返回 true。

invokeLater

public static void invokeLater(Runnable runnable)
导致 runnablerun 方法在 EventQueue 的指派线程上被调用。在所有挂起事件被处理后才发生。

参数:
runnable - Runnable,其 run 方法应该在 EventQueue 上同步执行
从以下版本开始:
1.2
另请参见:
invokeAndWait(java.lang.Runnable)

invokeAndWait

public static void invokeAndWait(Runnable runnable)
                          throws InterruptedException,
                                 InvocationTargetException
导致 runnablerun 方法在 EventQueue 的指派线程上被调用。在所有挂起事件被处理后才发生。在这发生之前调用被阻塞。如果从事件指派线程进行调用,则该方法将抛出 Error。

参数:
runnable - Runnable,其 run 方法应该在 EventQueue 上同步执行
抛出:
InterruptedException - 如果另一个线程已经中断了该线程
InvocationTargetException - 如果运行 runnable 时抛出一个 throwable
从以下版本开始:
1.2
另请参见:
invokeLater(java.lang.Runnable)

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策