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 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171
/* * @(#)Insets.java 1.31 05/11/17 * * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ package java.awt; /** * An <code>Insets</code> object is a representation of the borders * of a container. It specifies the space that a container must leave * at each of its edges. The space can be a border, a blank space, or * a title. * * @version 1.31, 11/17/05 * @author Arthur van Hoff * @author Sami Shaio * @see java.awt.LayoutManager * @see java.awt.Container * @since JDK1.0 */ public class Insets implements Cloneable, java.io.Serializable { /** * The inset from the top. * This value is added to the Top of the rectangle * to yield a new location for the Top. * * @serial * @see #clone() */ public int top; /** * The inset from the left. * This value is added to the Left of the rectangle * to yield a new location for the Left edge. * * @serial * @see #clone() */ public int left; /** * The inset from the bottom. * This value is subtracted from the Bottom of the rectangle * to yield a new location for the Bottom. * * @serial * @see #clone() */ public int bottom; /** * The inset from the right. * This value is subtracted from the Right of the rectangle * to yield a new location for the Right edge. * * @serial * @see #clone() */ public int right; /* * JDK 1.1 serialVersionUID */ private static final long serialVersionUID = -2272572637695466749L; static { /* ensure that the necessary native libraries are loaded */ Toolkit.loadLibraries(); if (!GraphicsEnvironment.isHeadless()) { initIDs(); } } /** * Creates and initializes a new <code>Insets</code> object with the * specified top, left, bottom, and right insets. * @param top the inset from the top. * @param left the inset from the left. * @param bottom the inset from the bottom. * @param right the inset from the right. */ public Insets(int top, int left, int bottom, int right) { this.top = top; this.left = left; this.bottom = bottom; this.right = right; } /** * Set top, left, bottom, and right to the specified values * * @param top the inset from the top. * @param left the inset from the left. * @param bottom the inset from the bottom. * @param right the inset from the right. * @since 1.5 */ public void set(int top, int left, int bottom, int right) { this.top = top; this.left = left; this.bottom = bottom; this.right = right; } /** * Checks whether two insets objects are equal. Two instances * of <code>Insets</code> are equal if the four integer values * of the fields <code>top</code>, <code>left</code>, * <code>bottom</code>, and <code>right</code> are all equal. * @return <code>true</code> if the two insets are equal; * otherwise <code>false</code>. * @since JDK1.1 */ public boolean equals(Object obj) { if (obj instanceof Insets) { Insets insets = (Insets)obj; return ((top == insets.top) && (left == insets.left) && (bottom == insets.bottom) && (right == insets.right)); } return false; } /** * Returns the hash code for this Insets. * * @return a hash code for this Insets. */ public int hashCode() { int sum1 = left + bottom; int sum2 = right + top; int val1 = sum1 * (sum1 + 1)/2 + left; int val2 = sum2 * (sum2 + 1)/2 + top; int sum3 = val1 + val2; return sum3 * (sum3 + 1)/2 + val2; } /** * Returns a string representation of this <code>Insets</code> object. * This method is intended to be used only for debugging purposes, and * the content and format of the returned string may vary between * implementations. The returned string may be empty but may not be * <code>null</code>. * * @return a string representation of this <code>Insets</code> object. */ public String toString() { return getClass().getName() + "[top=" + top + ",left=" + left + ",bottom=" + bottom + ",right=" + right + "]"; } /** * Create a copy of this object. * @return a copy of this <code>Insets</code> object. */ public Object clone() { try { return super.clone(); } catch (CloneNotSupportedException e) { // this shouldn't happen, since we are Cloneable throw new InternalError(); } } /** * Initialize JNI field and method IDs */ private static native void initIDs(); }