EventQueue.invokeLater(new Runnable())
public class EventQueueextends ObjectEventQueue 是一个与平台无关的类,它将来自于底层同位体类和受信任的应用程序类的事件列入队列。它封装了异步事件指派机制,该机制从队列中提取事件,然后通过对此 EventQueue 调用 dispatchEvent(AWTEvent) 方法来指派这些事件(事件作为参数被指派)。该机制的特殊行为是与实现有关的。指派实际排入到该队列中的事件(注意,正在发送到 EventQueue 中的事件可以被合并)的唯一要求是:按顺序指派。也就是说,不允许同时从该队列中指派多个事件。指派顺序与它们排队的顺序相同。也就是说,如果 AWTEvent A 比 AWTEvent B 先排入到 EventQueue 中,那么事件 B 不能在事件 A 之前被指派。一些浏览器将不同代码基中的 applet 分成独立的上下文,并在这些上下文之间建立一道道墙。在这样的场景中,每个上下文将会有一个 EventQueue。其他浏览器将所有的 applet 放入到同一个上下文中,这意味着所有 applet 只有一个全局 EventQueue。该行为是与实现有关的。有关更多信息,请参照浏览器的文档。postEventpublic void postEvent(AWTEvent theEvent)将一个 1.1 样式的事件发送到 EventQueue 中。如果在队列中存在具有相同 ID 和事件源的事件,则调用源 Component 的 coalesceEvents 方法。参数:theEvent - java.awt.AWTEvent 的实例,或者是它的子类抛出:NullPointerException - 如果 theEvent 为 null--------------------------------------------------------------------------------getNextEventpublic AWTEvent getNextEvent()throws InterruptedException从 EventQueue 中移除一个事件,并返回该事件。在另一个线程发送事件之前该方法被阻塞。返回:下一个 AWTEvent抛出:InterruptedException - 如果任何线程中断了此线程--------------------------------------------------------------------------------peekEventpublic AWTEvent peekEvent()返回 EventQueue 上的第一个事件,而不移除它。返回:第一个事件--------------------------------------------------------------------------------peekEventpublic AWTEvent peekEvent(int id)返回指定 id(如果有) 的第一个事件。参数:id - 所需事件类型的 id返回:指定 id 的第一个事件,如果没有这样的事件,则返回 null--------------------------------------------------------------------------------dispatchEventprotected void dispatchEvent(AWTEvent event)指派一个事件。指派事件的方式取决于事件的类型和事件的源对象的类型:事件类型 源类型 指派ActiveEvent 所有 event.dispatch()其他 Component source.dispatchEvent(AWTEvent)其他 MenuComponent source.dispatchEvent(AWTEvent)其他 其他 无动作(忽略)参数:event - java.awt.AWTEvent 的实例或者是它的子类抛出:NullPointerException - 如果 event 为 null从以下版本开始:1.2--------------------------------------------------------------------------------getMostRecentEventTimepublic static long getMostRecentEventTime()返回最近事件的时间戳(如果有),该事件从 EventQueue(它与正在调用的线程相关)进行指派。如果具有时间戳的事件目前正被指派,则返回它的时间戳。如果没有事件被指派,则返回 EventQueue 的初始化时间。在 JDK 的当前版本中,只有 InputEvent、ActionEvent 和 InvocationEvent 有时间戳;但是,JDK 的未来版本可能将时间戳添加到其他事件类型中。注意,该方法只应该从应用程序事件的指派线程进行调用。如果从另一个线程调用该方法,则返回当前系统的时间(由 System.currentTimeMillis() 报告)。返回:最后一次 InputEvent 的时间戳,要指派的 ActionEvent 或 InvocationEvent,如果在不同于事件指派线程的线程上调用该方法,则返回 System.currentTimeMillis()从以下版本开始:1.4另请参见:InputEvent.getWhen(), ActionEvent.getWhen(), InvocationEvent.getWhen()--------------------------------------------------------------------------------getCurrentEventpublic static AWTEvent getCurrentEvent()返回当前正在被 EventQueue(它与正在调用的线程相关)指派的事件。只有某个方法需要访问事件时,但是并没有被设计为可以将事件作为参数来接受,则此方法很有用。注意,该方法应该只从应用程序的事件指派线程进行调用。如果从另一个线程调用该方法,则返回 null。返回:当前正被指派的事件;如果调用该方法的线程不是事件指派线程,则返回 null从以下版本开始:1.4--------------------------------------------------------------------------------pushpublic void push(EventQueue newEventQueue)用指定的事件队列替换现有的 EventQueue。任何挂起的事件都被传输到 EventQueue 以备处理。参数:newEventQueue - 要使用的 EventQueue(或其子类的)的实例抛出:NullPointerException - 如果 newEventQueue 为 null从以下版本开始:1.2另请参见:pop()--------------------------------------------------------------------------------popprotected void pop()throws EmptyStackException停止使用此 EventQueue 指派事件。任何挂起的事件都被传输到以前的 EventQueue 以备处理。警告:为了避免死锁,不要在子类中将该方法声明为 synchronized。抛出:EmptyStackException - 如果以前没有对该 EventQueue 执行 push 操作从以下版本开始:1.2另请参见:push(java.awt.EventQueue)--------------------------------------------------------------------------------isDispatchThreadpublic static boolean isDispatchThread()如果正在调用的线程是当前 AWT EventQueue 的指派线程,则返回 true。使用此调用确保给定的任务正在当前 AWT EventDispatchThread 上执行(或没有执行)。返回:如果给定的任务正在当前 AWT EventQueue 的指派线程上运行,则返回 true。从以下版本开始:1.2--------------------------------------------------------------------------------invokeLaterpublic static void invokeLater(Runnable runnable)导致 runnable 的 run 方法在 the system EventQueue 的指派线程中被调用。参数:runnable - Runnable 对象,其 run 方法应该补充:软件开发 , Java ,
上一个:Hibernate占位符问题[use named parameters or JPA-style positional parameters instead.]
下一个:JAVA中JNI的简单使用
- 更多JAVA疑问解答:
- java怎么在线读取ftp服务器上的文件内容
- 关于程序员的职业规划
- HTML和JSP矛盾吗?
- java小程序如何打包?
- java怎么split路径文件名?
- jsp+javaBean中Column 'ordersPrice' specified twice的错误
- Java TCP/IP Socket网络编程系列
- 大家来讨论一下我到底该用什么好?Swing 还是 JavaFX
- 关于Hibernate实体自身多对一的抓取问题
- 关于apache2+tomcat群集出现的问题
- spring 获取上下文问题
- SSH 导入导出excel 谁有这块的资料吗?
- Ext TreePanel 刷新问题
- springmvc 加载一个jsp页面执行多个方法 报404
- checkbox数组action怎么向页面传值