/*
* Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved.
* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
package java.awt;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.util.Objects;
import java.util.Vector;
import java.util.Locale;
import java.util.EventListener;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.Collections;
import java.awt.peer.ComponentPeer;
import java.awt.peer.ContainerPeer;
import java.awt.peer.LightweightPeer;
import java.awt.image.BufferStrategy;
import java.awt.image.ImageObserver;
import java.awt.image.ImageProducer;
import java.awt.image.ColorModel;
import java.awt.image.VolatileImage;
import java.awt.event.*;
import java.io.Serializable;
import java.io.ObjectOutputStream;
import java.io.ObjectInputStream;
import java.io.IOException;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.beans.Transient;
import java.awt.im.InputContext;
import java.awt.im.InputMethodRequests;
import java.awt.dnd.DropTarget;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.security.AccessControlContext;
import javax.accessibility.*;
import java.applet.Applet;
import sun.security.action.GetPropertyAction;
import sun.awt.AppContext;
import sun.awt.AWTAccessor;
import sun.awt.ConstrainableGraphics;
import sun.awt.SubRegionShowable;
import sun.awt.SunToolkit;
import sun.awt.WindowClosingListener;
import sun.awt.CausedFocusEvent;
import sun.awt.EmbeddedFrame;
import sun.awt.dnd.SunDropTargetEvent;
import sun.awt.im.CompositionArea;
import sun.font.FontManager;
import sun.font.FontManagerFactory;
import sun.font.SunFontManager;
import sun.java2d.SunGraphics2D;
import sun.java2d.pipe.Region;
import sun.awt.image.VSyncedBSManager;
import sun.java2d.pipe.hw.ExtendedBufferCapabilities;
import static sun.java2d.pipe.hw.ExtendedBufferCapabilities.VSyncType.*;
import sun.awt.RequestFocusController;
import sun.java2d.SunGraphicsEnvironment;
import sun.util.logging.PlatformLogger;
/**
* A <em>component</em> is an object having a graphical representation
* that can be displayed on the screen and that can interact with the
* user. Examples of components are the buttons, checkboxes, and scrollbars
* of a typical graphical user interface. <p>
* The <code>Component</code> class is the abstract superclass of
* the nonmenu-related Abstract Window Toolkit components. Class
* <code>Component</code> can also be extended directly to create a
* lightweight component. A lightweight component is a component that is
* not associated with a native window. On the contrary, a heavyweight
* component is associated with a native window. The {@link #isLightweight()}
* method may be used to distinguish between the two kinds of the components.
* <p>
* Lightweight and heavyweight components may be mixed in a single component
* hierarchy. However, for correct operating of such a mixed hierarchy of
* components, the whole hierarchy must be valid. When the hierarchy gets
* invalidated, like after changing the bounds of components, or
* adding/removing components to/from containers, the whole hierarchy must be
* validated afterwards by means of the {@link Container#validate()} method
* invoked on the top-most invalid container of the hierarchy.
*
* <h3>Serialization</h3>
* It is important to note that only AWT listeners which conform
* to the <code>Serializable</code> protocol will be saved when
* the object is stored. If an AWT object has listeners that
* aren't marked serializable, they will be dropped at
* <code>writeObject</code> time. Developers will need, as always,
* to consider the implications of making an object serializable.
* One situation to watch out for is this:
* <pre>
* import java.awt.*;
* import java.awt.event.*;
* import java.io.Serializable;
*
* class MyApp implements ActionListener, Serializable
* {
* BigObjectThatShouldNotBeSerializedWithAButton bigOne;
* Button aButton = new Button();
*
* MyApp()
* {
* // Oops, now aButton has a listener with a reference
* // to bigOne!
* aButton.addActionListener(this);
* }
*
* public void actionPerformed(ActionEvent e)
* {
* System.out.println("Hello There");
* }
* }
* </pre>
* In this example, serializing <code>aButton</code> by itself
* will cause <code>MyApp</code> and everything it refers to
* to be serialized as well. The problem is that the listener
* is serializable by coincidence, not by design. To separate
* the decisions about <code>MyApp</code> and the
* <code>ActionListener</code> being serializable one can use a
* nested class, as in the following example:
* <pre>
* import java.awt.*;
* import java.awt.event.*;
* import java.io.Serializable;
*
* class MyApp implements java.io.Serializable
* {
* BigObjectThatShouldNotBeSerializedWithAButton bigOne;
* Button aButton = new Button();
*
* static class MyActionListener implements ActionListener
* {
* public void actionPerformed(ActionEvent e)
* {
* System.out.println("Hello There");
* }
* }
*
* MyApp()
* {
* aButton.addActionListener(new MyActionListener());
* }
* }
* </pre>
* <p>
* <b>Note</b>: For more information on the paint mechanisms utilitized
* by AWT and Swing, including information on how to write the most
* efficient painting code, see
* <a href="http://www.oracle.com/technetwork/java/painting-140037.html">Painting in AWT and Swing</a>.
* <p>
* For details on the focus subsystem, see
* <a href="http://docs.oracle.com/javase/tutorial/uiswing/misc/focus.html">
* How to Use the Focus Subsystem</a>,
* a section in <em>The Java Tutorial</em>, and the
* <a href="../../java/awt/doc-files/FocusSpec.html">Focus Specification</a>
* for more information.
*
* @author Arthur van Hoff
* @author Sami Shaio
*/
public abstract class Component implements ImageObserver, MenuContainer,
Serializable
{
private static final PlatformLogger log = PlatformLogger.getLogger("java.awt.Component");
private static final PlatformLogger eventLog = PlatformLogger.getLogger("java.awt.event.Component");
private static final PlatformLogger focusLog = PlatformLogger.getLogger("java.awt.focus.Component");
private static final PlatformLogger mixingLog = PlatformLogger.getLogger("java.awt.mixing.Component");
/**
* The peer of the component. The peer implements the component's
* behavior. The peer is set when the <code>Component</code> is
* added to a container that also is a peer.
* @see #addNotify
* @see #removeNotify
*/
transient ComponentPeer peer;
/**
* The parent of the object. It may be <code>null</code>
* for top-level components.
* @see #getParent
*/
transient Container parent;
/**
* The <code>AppContext</code> of the component. Applets/Plugin may
* change the AppContext.
*/
transient AppContext appContext;
/**
* The x position of the component in the parent's coordinate system.
*
* @serial
* @see #getLocation
*/
int x;
/**
* The y position of the component in the parent's coordinate system.
*
* @serial
* @see #getLocation
*/
int y;
/**
* The width of the component.
*
* @serial
* @see #getSize
*/
int width;
/**
* The height of the component.
*
* @serial
* @see #getSize
*/
int height;
/**
* The
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
java8源码src.zip (2000个子文件)
java.c 63KB
java_md_solinux.c 35KB
parse_manifest.c 21KB
java_md_common.c 14KB
wildcard.c 12KB
version_comp.c 10KB
main.c 3KB
splashscreen_stubs.c 2KB
jli_util.c 2KB
java.h 8KB
manifest_info.h 6KB
emessages.h 5KB
jli_util.h 2KB
defines.h 2KB
java_md.h 1KB
java_md_solinux.h 1KB
version_comp.h 552B
splashscreen.h 478B
wildcard.h 344B
Component.java 369KB
JTable.java 367KB
ORBUtilSystemException.java 326KB
Character.java 259KB
ConcurrentHashMap.java 256KB
Arrays.java 222KB
Pattern.java 215KB
BigDecimal.java 214KB
XPathParser.java 211KB
Collections.java 211KB
BaseRowSet.java 210KB
JComponent.java 206KB
ResultSet.java 203KB
JTree.java 201KB
XSDHandler.java 197KB
DateTimeFormatterBuilder.java 196KB
Container.java 189KB
Formatter.java 187KB
JTextComponent.java 185KB
NimbusDefaults.java 179KB
XMLSchemaValidator.java 174KB
DecimalFormat.java 173KB
Files.java 165KB
BasicTreeUI.java 164KB
HTMLDocument.java 159KB
DatabaseMetaData.java 159KB
BigInteger.java 158KB
Window.java 150KB
MethodHandles.java 150KB
BasicTabbedPaneUI.java 148KB
RelationService.java 147KB
Class.java 143KB
AffineTransform.java 143KB
ForkJoinPool.java 141KB
JList.java 140KB
GroupLayout.java 140KB
XSSimpleTypeDecl.java 138KB
Calendar.java 137KB
GregorianCalendar.java 133KB
Locale.java 133KB
ObjectInputStream.java 132KB
ConcurrentSkipListMap.java 132KB
URI.java 131KB
XMLDocumentFragmentScannerImpl.java 131KB
CallableStatement.java 131KB
ComponentColorModel.java 131KB
ResourceBundle.java 130KB
OMGSystemException.java 129KB
XMLCipher.java 129KB
KeyboardFocusManager.java 128KB
CSS.java 126KB
StyleSheet.java 124KB
RequiredModelMBean.java 124KB
WindowsLookAndFeel.java 123KB
String.java 121KB
XIncludeHandler.java 116KB
XMLEntityManager.java 116KB
ImageReader.java 115KB
DualPivotQuicksort.java 114KB
SynthPainterImpl.java 114KB
XMLGregorianCalendarImpl.java 113KB
Toolkit.java 111KB
CompletableFuture.java 110KB
DTDGrammar.java 109KB
MetalLookAndFeel.java 109KB
AbstractButton.java 108KB
AccessibleHTML.java 108KB
ToStream.java 108KB
AbstractDocument.java 108KB
IIOPInputStream.java 107KB
JOptionPane.java 106KB
TreeMap.java 106KB
Font.java 106KB
BasicLookAndFeel.java 106KB
BasicListUI.java 104KB
AbstractDOMParser.java 104KB
DefaultStyledDocument.java 104KB
X509CertSelector.java 103KB
TextLayout.java 102KB
ZonedDateTime.java 102KB
RMIConnector.java 102KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
lvgg12580
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页