Java中的事件机制的参与者有3种角色:
1.event
object:事件状态对象,用于listener的相应的方法之中,作为参数,一般存在与listerner的方法之中
2.event source:具体的事件源,比如说,你点击一个button,那么button就是event
source,要想使button对某些事件进行响应,你就需要注册特定的listener。
3.event listener:具体的对监听的事件类,当它监听到event
object产生的时候,它就调用相应的方法,进行处理。
==================================================================================
package java.util;
public abstract interface EventListener
{
}
==================================================================================
package java.awt.event;
import java.util.EventListener;
public abstract interface MouseListener extends EventListener
{
public abstract void mouseClicked(MouseEvent
paramMouseEvent);
public abstract void mousePressed(MouseEvent
paramMouseEvent);
public abstract void mouseReleased(MouseEvent
paramMouseEvent);
public abstract void mouseEntered(MouseEvent
paramMouseEvent);
public abstract void mouseExited(MouseEvent
paramMouseEvent);
}
==================================================================================
package java.awt.event;
import java.util.EventListener;
public abstract interface MouseMotionListener extends
EventListener
{
public abstract void mouseDragged(MouseEvent
paramMouseEvent);
public abstract void mouseMoved(MouseEvent
paramMouseEvent);
}
==================================================================================
package java.awt.event;
import java.util.EventListener;
public abstract interface MouseWheelListener extends
EventListener
{
public abstract void
mouseWheelMoved(MouseWheelEvent paramMouseWheelEvent);
}
==================================================================================
package java.awt.event;
public abstract class
MouseAdapter//适配器模式
implements
MouseListener, MouseWheelListener,
MouseMotionListener
{
public void mouseClicked(MouseEvent
paramMouseEvent)
{
}
public void mousePressed(MouseEvent
paramMouseEvent)
{
}
public void mouseReleased(MouseEvent
paramMouseEvent)
{
}
public void mouseEntered(MouseEvent
paramMouseEvent)
{
}
public void mouseExited(MouseEvent
paramMouseEvent)
{
}
public void mouseWheelMoved(MouseWheelEvent
paramMouseWheelEvent)
{
}
public void mouseDragged(MouseEvent
paramMouseEvent)
{
}
public void mouseMoved(MouseEvent
paramMouseEvent)
{
}
}
==================================================================================
package java.util;
import java.io.Serializable;
public class EventObject
implements Serializable
{
private static final
long serialVersionUID = 5516075349620653480L;
protected transient
Object source;
public EventObject(Object paramObject)
{
if
(paramObject == null) {
throw new IllegalArgumentException("null source");
}
this.source
= paramObject;
}
public Object getSource()
{
return
this.source;
}
public String toString()
{
return
super.getClass().getName() + "[source=" + this.source + "]";
}
}
==================================================================================
package java.awt;
import java.awt.event.ActionEvent;
import java.awt.event.AdjustmentEvent;
import java.awt.event.InputEvent;
import java.awt.event.ItemEvent;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.peer.ComponentPeer;
import java.awt.peer.LightweightPeer;
import java.lang.reflect.Field;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.EventObject;
import sun.awt.AWTAccessor;
import sun.awt.AWTAccessor.AWTEventAccessor;
public abstract class AWTEvent extends EventObject
{
private byte[] bdata;
protected int id;
protected boolean consumed;
transient boolean
focusManagerIsDispatching;
transient boolean isPosted;
private transient boolean
isSystemGenerated;
public static final long COMPONENT_EVENT_MASK =
1L;
public static final long CONTAINER_EVENT_MASK =
2L;
public static final long FOCUS_EVENT_MASK =
4L;
public static final long KEY_EVENT_MASK =
8L;
public static final long MOUSE_EVENT_MASK =
16L;
public static final long MOUSE_MOTION_EVENT_MASK
= 32L;
public static final long WINDOW_EVENT_MASK =
64L;
public static final long ACTION_EVENT_MASK =
128L;
public static final long ADJUSTMENT_EVENT_MASK =
256L;
public static final long ITEM_EVENT_MASK =
512L;
public static final long TEXT_EVENT_MASK =
1024L;
public static final long INPUT_METHOD_EVENT_MASK
= 2048L;
static final long INPUT_METHODS_ENABLED_MASK =
4096L;
public static final long PAINT_EVENT_MASK =
8192L;
public static final long INVOCATION_EVENT_MASK =
16384L;
public static final long HIERARCHY_EVENT_MASK =
32768L;
public static final long
HIERARCHY_BOUNDS_EVENT_MASK = 65536L;
public static final long MOUSE_WHEEL_EVENT_MASK
= 131072L;
public static final long WINDOW_STATE_EVENT_MASK
= 262144L;
public static final long WINDOW_FOCUS_EVENT_MASK
= 524288L;
public static final int RESERVED_ID_MAX =
1999;
private static Field
inputEvent_CanAccessSystemClipboard_Field = null;
private static final long serialVersionUID =
-1825314779160409405L;
private static synchronized Field
get_InputEvent_CanAccessSystemClipboard()
{
if
(inputEvent_CanAccessSystemClipboard_Field == null) {
inputEvent_CanAccessSystemClipboard_Field =
(Field)AccessController.doPrivileged(new PrivilegedAction()
{
public Object run()
{
Field localField = null;
try {
localField =
InputEvent.class.getDeclaredField("canAccessSystemClipboard");
localField.setAccessible(true);
return localField;
} catch (SecurityException localSecurityException) {
} catch (NoSuchFieldException localNoSuchFieldException) {
}
return null;
}
});
}
return
inputEvent_CanAccessSystemClipboard_Field;
}
private static native void initIDs();
public AWTEvent(Event paramEvent)
{
this(paramEvent.target, paramEvent.id);
}
public AWTEvent(Object paramObject, int
paramInt)
{