1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142
/* * @(#)ComponentEvent.java 1.29 06/04/13 * * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ package java.awt.event; import java.awt.AWTEvent; import java.awt.Event; import java.awt.Component; import java.awt.Rectangle; /** * A low-level event which indicates that a component moved, changed * size, or changed visibility (also, the root class for the other * component-level events). * <P> * Component events are provided for notification purposes ONLY; * The AWT will automatically handle component moves and resizes * internally so that GUI layout works properly regardless of * whether a program is receiving these events or not. * <P> * In addition to serving as the base class for other component-related * events (InputEvent, FocusEvent, WindowEvent, ContainerEvent), * this class defines the events that indicate changes in * a component's size, position, or visibility. * <P> * This low-level event is generated by a component object (such as a * List) when the component is moved, resized, rendered invisible, or made * visible again. The event is passed to every <code>ComponentListener</code> * or <code>ComponentAdapter</code> object which registered to receive such * events using the component's <code>addComponentListener</code> method. * (<code>ComponentAdapter</code> objects implement the * <code>ComponentListener</code> interface.) Each such listener object * gets this <code>ComponentEvent</code> when the event occurs. * * @see ComponentAdapter * @see ComponentListener * @see <a href="http://java.sun.com/docs/books/tutorial/post1.0/ui/componentlistener.html">Tutorial: Writing a Component Listener</a> * * @author Carl Quinn * @version 1.29 04/13/06 * @since 1.1 */ public class ComponentEvent extends AWTEvent { /** * The first number in the range of ids used for component events. */ public static final int COMPONENT_FIRST = 100; /** * The last number in the range of ids used for component events. */ public static final int COMPONENT_LAST = 103; /** * This event indicates that the component's position changed. */ public static final int COMPONENT_MOVED = COMPONENT_FIRST; /** * This event indicates that the component's size changed. */ public static final int COMPONENT_RESIZED = 1 + COMPONENT_FIRST; /** * This event indicates that the component was made visible. */ public static final int COMPONENT_SHOWN = 2 + COMPONENT_FIRST; /** * This event indicates that the component was rendered invisible. */ public static final int COMPONENT_HIDDEN = 3 + COMPONENT_FIRST; /* * JDK 1.1 serialVersionUID */ private static final long serialVersionUID = 8101406823902992965L; /** * Constructs a <code>ComponentEvent</code> object. * <p>Note that passing in an invalid <code>id</code> results in * unspecified behavior. This method throws an * <code>IllegalArgumentException</code> if <code>source</code> * is <code>null</code>. * * @param source the <code>Component</code> that originated the event * @param id an integer indicating the type of event * @throws IllegalArgumentException if <code>source</code> is null */ public ComponentEvent(Component source, int id) { super(source, id); } /** * Returns the originator of the event. * * @return the <code>Component</code> object that originated * the event, or <code>null</code> if the object is not a * <code>Component</code>. */ public Component getComponent() { return (source instanceof Component) ? (Component)source : null; } /** * 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; Rectangle b = (source !=null ? ((Component)source).getBounds() : null); switch(id) { case COMPONENT_SHOWN: typeStr = "COMPONENT_SHOWN"; break; case COMPONENT_HIDDEN: typeStr = "COMPONENT_HIDDEN"; break; case COMPONENT_MOVED: typeStr = "COMPONENT_MOVED ("+ b.x+","+b.y+" "+b.width+"x"+b.height+")"; break; case COMPONENT_RESIZED: typeStr = "COMPONENT_RESIZED ("+ b.x+","+b.y+" "+b.width+"x"+b.height+")"; break; default: typeStr = "unknown type"; } return typeStr; } }