⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 invocationevent.java

📁 JAVA基本类源代码,大家可以学习学习!
💻 JAVA
字号:
/* * @(#)InvocationEvent.java	1.14 03/01/23 * * Copyright 2003 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */package java.awt.event;import java.awt.ActiveEvent;import java.awt.AWTEvent;/** * An event which executes the <code>run()</code> method on a <code>Runnable * </code> when dispatched by the AWT event dispatcher thread. This class can * be used as a reference implementation of <code>ActiveEvent</code> rather * than declaring a new class and defining <code>dispatch()</code>.<p> * * Instances of this class are placed on the <code>EventQueue</code> by calls * to <code>invokeLater</code> and <code>invokeAndWait</code>. Client code * can use this fact to write replacement functions for <code>invokeLater * </code> and <code>invokeAndWait</code> without writing special-case code * in any <code>AWTEventListener</code> objects. * * @author	Fred Ecks * @author	David Mendenhall * @version	1.14, 01/23/03 * * @see		java.awt.ActiveEvent * @see		java.awt.EventQueue#invokeLater * @see		java.awt.EventQueue#invokeAndWait * @see		AWTEventListener * * @since 	1.2 */public class InvocationEvent extends AWTEvent implements ActiveEvent {    /**     * Marks the first integer id for the range of invocation event ids.     */    public static final int INVOCATION_FIRST = 1200;    /**     * The default id for all InvocationEvents.     */    public static final int INVOCATION_DEFAULT = INVOCATION_FIRST;    /**     * Marks the last integer id for the range of invocation event ids.     */    public static final int INVOCATION_LAST = INVOCATION_DEFAULT;    /**     * The Runnable whose run() method will be called.     */    protected Runnable runnable;    /**     * The (potentially null) Object whose notifyAll() method will be called     * immediately after the Runnable.run() method returns.     */    protected Object notifier;    /**     * Set to true if dispatch() catches Exception and stores it in the     * exception instance variable. If false, Exceptions are propagated up     * to the EventDispatchThread's dispatch loop.     */    protected boolean catchExceptions;    /**     * The (potentially null) Exception thrown during execution of the     * Runnable.run() method. This variable will also be null if a particular     * instance does not catch exceptions.     */    private Exception exception = null;    /**     * The timestamp of when this event occurred.     *     * @serial     * @see #getWhen     */    private long when;    /*     * JDK 1.1 serialVersionUID.     */    private static final long serialVersionUID = 436056344909459450L;    /**     * Constructs an <code>InvocationEvent</code> with the specified     * source which will execute the runnable's <code>run</code>     * method when dispatched.     *     * @param source	the <code>Object</code> that originated the event     * @param runnable	the <code>Runnable</code> whose <code>run</code>     *                  method will be executed     */    public InvocationEvent(Object source, Runnable runnable) {        this(source, runnable, null, false);    }    /**     * Constructs an <code>InvocationEvent</code> with the specified     * source which will execute the runnable's <code>run</code>     * method when dispatched.  If notifier is non-<code>null</code>,     * <code>notifyAll()</code> will be called on it     * immediately after <code>run</code> returns.     *     * @param source		the <code>Object</code> that originated     *                          the event     * @param runnable		the <code>Runnable</code> whose     *                          <code>run</code> method will be     *                          executed     * @param notifier		the Object whose <code>notifyAll</code>     *                          method will be called after     *                          <code>Runnable.run</code> has returned     * @param catchExceptions	specifies whether <code>dispatch</code>     *                          should catch Exception when executing     *                          the <code>Runnable</code>'s <code>run</code>     *                          method, or should instead propagate those     *                          Exceptions to the EventDispatchThread's     *                          dispatch loop     */    public InvocationEvent(Object source, Runnable runnable, Object notifier,                           boolean catchExceptions) {	this(source, INVOCATION_DEFAULT, runnable, notifier, catchExceptions);    }    /**     * Constructs an <code>InvocationEvent</code> with the specified     * source and ID which will execute the runnable's <code>run</code>     * method when dispatched.  If notifier is non-<code>null</code>,     * <code>notifyAll</code> will be called on it      * immediately after <code>run</code> returns.     * <p>Note that passing in an invalid <code>id</code> results in     * unspecified behavior.     *     * @param source		the <code>Object</code> that originated     *                          the event     * @param id		the ID for the event     * @param runnable		the <code>Runnable</code> whose     *                          <code>run</code> method will be executed     * @param notifier		the <code>Object whose <code>notifyAll</code>     *                          method will be called after     *                          <code>Runnable.run</code> has returned     * @param catchExceptions	specifies whether <code>dispatch</code>     *                          should catch Exception when executing the     *                          <code>Runnable</code>'s <code>run</code>     *                          method, or should instead propagate those     *                          Exceptions to the EventDispatchThread's     *                          dispatch loop     */    protected InvocationEvent(Object source, int id, Runnable runnable,                               Object notifier, boolean catchExceptions) {        super(source, id);	this.runnable = runnable;	this.notifier = notifier;	this.catchExceptions = catchExceptions;        this.when = System.currentTimeMillis();    }    /**     * Executes the Runnable's <code>run()</code> method and notifies the     * notifier (if any) when <code>run()</code> returns.     */    public void dispatch() {	if (catchExceptions) {	    try {		runnable.run();	    } 	    catch (Exception e) {		exception = e;	    }	}	else {	    runnable.run();	}	if (notifier != null) {	    synchronized (notifier) {		notifier.notifyAll();	    }	}    }    /**     * Returns any Exception caught while executing the Runnable's <code>run()     * </code> method.     *     * @return	A reference to the Exception if one was thrown; null if no     *		Exception was thrown or if this InvocationEvent does not     *		catch exceptions     */    public Exception getException() {	return (catchExceptions) ? exception : null;    }    /**     * Returns the timestamp of when this event occurred.     *     * @return this event's timestamp     * @since 1.4     */    public long getWhen() {        return when;    }    /**     * Returns a parameter string identifying this event.     * This method is useful for event-logging and for debugging.     *     * @return  A string identifying the event and its attributes     */    public String paramString() {        String typeStr;	switch(id) {            case INVOCATION_DEFAULT:	        typeStr = "INVOCATION_DEFAULT";		break;            default:	        typeStr = "unknown type";	}	return typeStr + ",runnable=" + runnable + ",notifier=" + notifier +	    ",catchExceptions=" + catchExceptions + ",when=" + when;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -