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
/* * @(#)Panel.java 1.37 06/04/07 * * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ package java.awt; import java.awt.peer.PanelPeer; import javax.accessibility.*; /** * <code>Panel</code> is the simplest container class. A panel * provides space in which an application can attach any other * component, including other panels. * <p> * The default layout manager for a panel is the * <code>FlowLayout</code> layout manager. * * @version 1.37, 04/07/06 * @author Sami Shaio * @see java.awt.FlowLayout * @since JDK1.0 */ public class Panel extends Container implements Accessible { private static final String base = "panel"; private static int nameCounter = 0; /* * JDK 1.1 serialVersionUID */ private static final long serialVersionUID = -2728009084054400034L; /** * Creates a new panel using the default layout manager. * The default layout manager for all panels is the * <code>FlowLayout</code> class. */ public Panel() { this(new FlowLayout()); } /** * Creates a new panel with the specified layout manager. * @param layout the layout manager for this panel. * @since JDK1.1 */ public Panel(LayoutManager layout) { setLayout(layout); } /** * Construct a name for this component. Called by getName() when the * name is null. */ String constructComponentName() { synchronized (getClass()) { return base + nameCounter++; } } /** * Creates the Panel's peer. The peer allows you to modify the * appearance of the panel without changing its functionality. */ public void addNotify() { synchronized (getTreeLock()) { if (peer == null) peer = getToolkit().createPanel(this); super.addNotify(); } } ///////////////// // Accessibility support //////////////// /** * Gets the AccessibleContext associated with this Panel. * For panels, the AccessibleContext takes the form of an * AccessibleAWTPanel. * A new AccessibleAWTPanel instance is created if necessary. * * @return an AccessibleAWTPanel that serves as the * AccessibleContext of this Panel * @since 1.3 */ public AccessibleContext getAccessibleContext() { if (accessibleContext == null) { accessibleContext = new AccessibleAWTPanel(); } return accessibleContext; } /** * This class implements accessibility support for the * <code>Panel</code> class. It provides an implementation of the * Java Accessibility API appropriate to panel user-interface elements. * @since 1.3 */ protected class AccessibleAWTPanel extends AccessibleAWTContainer { private static final long serialVersionUID = -6409552226660031050L; /** * Get the role of this object. * * @return an instance of AccessibleRole describing the role of the * object */ public AccessibleRole getAccessibleRole() { return AccessibleRole.PANEL; } } }