8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 package java.awt; 26 27 /** 28 * The <code>GridBagConstraints</code> class specifies constraints 29 * for components that are laid out using the 30 * <code>GridBagLayout</code> class. 31 * 32 * @author Doug Stein 33 * @author Bill Spitzak (orignial NeWS & OLIT implementation) 34 * @see java.awt.GridBagLayout 35 * @since 1.0 36 */ 37 public class GridBagConstraints implements Cloneable, java.io.Serializable { 38 39 /** 40 * Specifies that this component is the next-to-last component in its 41 * column or row (<code>gridwidth</code>, <code>gridheight</code>), 42 * or that this component be placed next to the previously added 43 * component (<code>gridx</code>, <code>gridy</code>). 44 * @see java.awt.GridBagConstraints#gridwidth 45 * @see java.awt.GridBagConstraints#gridheight 46 * @see java.awt.GridBagConstraints#gridx 47 * @see java.awt.GridBagConstraints#gridy 48 */ 49 public static final int RELATIVE = -1; 50 51 /** 52 * Specifies that this component is the 53 * last component in its column or row. 54 */ 55 public static final int REMAINDER = 0; 56 57 /** 58 * Do not resize the component. 59 */ 60 public static final int NONE = 0; 61 62 /** 63 * Resize the component both horizontally and vertically. 177 178 /** 179 * Place the component in the corner of its display area where 180 * the last line of text on a page would normally start for the current 181 * {@code ComponentOrientation}. Equal to SOUTHWEST for horizontal, 182 * left-to-right orientations and SOUTHEAST for horizontal, right-to-left 183 * orientations. 184 */ 185 public static final int LAST_LINE_START = 25; 186 187 /** 188 * Place the component in the corner of its display area where 189 * the last line of text on a page would normally end for the current 190 * {@code ComponentOrientation}. Equal to SOUTHEAST for horizontal, 191 * left-to-right orientations and SOUTHWEST for horizontal, right-to-left 192 * orientations. 193 */ 194 public static final int LAST_LINE_END = 26; 195 196 /** 197 * Possible value for the <code>anchor</code> field. Specifies 198 * that the component should be horizontally centered and 199 * vertically aligned along the baseline of the prevailing row. 200 * If the component does not have a baseline it will be vertically 201 * centered. 202 * 203 * @since 1.6 204 */ 205 public static final int BASELINE = 0x100; 206 207 /** 208 * Possible value for the <code>anchor</code> field. Specifies 209 * that the component should be horizontally placed along the 210 * leading edge. For components with a left-to-right orientation, 211 * the leading edge is the left edge. Vertically the component is 212 * aligned along the baseline of the prevailing row. If the 213 * component does not have a baseline it will be vertically 214 * centered. 215 * 216 * @since 1.6 217 */ 218 public static final int BASELINE_LEADING = 0x200; 219 220 /** 221 * Possible value for the <code>anchor</code> field. Specifies 222 * that the component should be horizontally placed along the 223 * trailing edge. For components with a left-to-right 224 * orientation, the trailing edge is the right edge. Vertically 225 * the component is aligned along the baseline of the prevailing 226 * row. If the component does not have a baseline it will be 227 * vertically centered. 228 * 229 * @since 1.6 230 */ 231 public static final int BASELINE_TRAILING = 0x300; 232 233 /** 234 * Possible value for the <code>anchor</code> field. Specifies 235 * that the component should be horizontally centered. Vertically 236 * the component is positioned so that its bottom edge touches 237 * the baseline of the starting row. If the starting row does not 238 * have a baseline it will be vertically centered. 239 * 240 * @since 1.6 241 */ 242 public static final int ABOVE_BASELINE = 0x400; 243 244 /** 245 * Possible value for the <code>anchor</code> field. Specifies 246 * that the component should be horizontally placed along the 247 * leading edge. For components with a left-to-right orientation, 248 * the leading edge is the left edge. Vertically the component is 249 * positioned so that its bottom edge touches the baseline of the 250 * starting row. If the starting row does not have a baseline it 251 * will be vertically centered. 252 * 253 * @since 1.6 254 */ 255 public static final int ABOVE_BASELINE_LEADING = 0x500; 256 257 /** 258 * Possible value for the <code>anchor</code> field. Specifies 259 * that the component should be horizontally placed along the 260 * trailing edge. For components with a left-to-right 261 * orientation, the trailing edge is the right edge. Vertically 262 * the component is positioned so that its bottom edge touches 263 * the baseline of the starting row. If the starting row does not 264 * have a baseline it will be vertically centered. 265 * 266 * @since 1.6 267 */ 268 public static final int ABOVE_BASELINE_TRAILING = 0x600; 269 270 /** 271 * Possible value for the <code>anchor</code> field. Specifies 272 * that the component should be horizontally centered. Vertically 273 * the component is positioned so that its top edge touches the 274 * baseline of the starting row. If the starting row does not 275 * have a baseline it will be vertically centered. 276 * 277 * @since 1.6 278 */ 279 public static final int BELOW_BASELINE = 0x700; 280 281 /** 282 * Possible value for the <code>anchor</code> field. Specifies 283 * that the component should be horizontally placed along the 284 * leading edge. For components with a left-to-right orientation, 285 * the leading edge is the left edge. Vertically the component is 286 * positioned so that its top edge touches the baseline of the 287 * starting row. If the starting row does not have a baseline it 288 * will be vertically centered. 289 * 290 * @since 1.6 291 */ 292 public static final int BELOW_BASELINE_LEADING = 0x800; 293 294 /** 295 * Possible value for the <code>anchor</code> field. Specifies 296 * that the component should be horizontally placed along the 297 * trailing edge. For components with a left-to-right 298 * orientation, the trailing edge is the right edge. Vertically 299 * the component is positioned so that its top edge touches the 300 * baseline of the starting row. If the starting row does not 301 * have a baseline it will be vertically centered. 302 * 303 * @since 1.6 304 */ 305 public static final int BELOW_BASELINE_TRAILING = 0x900; 306 307 /** 308 * Specifies the cell containing the leading edge of the component's 309 * display area, where the first cell in a row has <code>gridx=0</code>. 310 * The leading edge of a component's display area is its left edge for 311 * a horizontal, left-to-right container and its right edge for a 312 * horizontal, right-to-left container. 313 * The value 314 * <code>RELATIVE</code> specifies that the component be placed 315 * immediately following the component that was added to the container 316 * just before this component was added. 317 * <p> 318 * The default value is <code>RELATIVE</code>. 319 * <code>gridx</code> should be a non-negative value. 320 * @serial 321 * @see #clone() 322 * @see java.awt.GridBagConstraints#gridy 323 * @see java.awt.ComponentOrientation 324 */ 325 public int gridx; 326 327 /** 328 * Specifies the cell at the top of the component's display area, 329 * where the topmost cell has <code>gridy=0</code>. The value 330 * <code>RELATIVE</code> specifies that the component be placed just 331 * below the component that was added to the container just before 332 * this component was added. 333 * <p> 334 * The default value is <code>RELATIVE</code>. 335 * <code>gridy</code> should be a non-negative value. 336 * @serial 337 * @see #clone() 338 * @see java.awt.GridBagConstraints#gridx 339 */ 340 public int gridy; 341 342 /** 343 * Specifies the number of cells in a row for the component's 344 * display area. 345 * <p> 346 * Use <code>REMAINDER</code> to specify that the component's 347 * display area will be from <code>gridx</code> to the last 348 * cell in the row. 349 * Use <code>RELATIVE</code> to specify that the component's 350 * display area will be from <code>gridx</code> to the next 351 * to the last one in its row. 352 * <p> 353 * <code>gridwidth</code> should be non-negative and the default 354 * value is 1. 355 * @serial 356 * @see #clone() 357 * @see java.awt.GridBagConstraints#gridheight 358 */ 359 public int gridwidth; 360 361 /** 362 * Specifies the number of cells in a column for the component's 363 * display area. 364 * <p> 365 * Use <code>REMAINDER</code> to specify that the component's 366 * display area will be from <code>gridy</code> to the last 367 * cell in the column. 368 * Use <code>RELATIVE</code> to specify that the component's 369 * display area will be from <code>gridy</code> to the next 370 * to the last one in its column. 371 * <p> 372 * <code>gridheight</code> should be a non-negative value and the 373 * default value is 1. 374 * @serial 375 * @see #clone() 376 * @see java.awt.GridBagConstraints#gridwidth 377 */ 378 public int gridheight; 379 380 /** 381 * Specifies how to distribute extra horizontal space. 382 * <p> 383 * The grid bag layout manager calculates the weight of a column to 384 * be the maximum <code>weightx</code> of all the components in a 385 * column. If the resulting layout is smaller horizontally than the area 386 * it needs to fill, the extra space is distributed to each column in 387 * proportion to its weight. A column that has a weight of zero receives 388 * no extra space. 389 * <p> 390 * If all the weights are zero, all the extra space appears between 391 * the grids of the cell and the left and right edges. 392 * <p> 393 * The default value of this field is <code>0</code>. 394 * <code>weightx</code> should be a non-negative value. 395 * @serial 396 * @see #clone() 397 * @see java.awt.GridBagConstraints#weighty 398 */ 399 public double weightx; 400 401 /** 402 * Specifies how to distribute extra vertical space. 403 * <p> 404 * The grid bag layout manager calculates the weight of a row to be 405 * the maximum <code>weighty</code> of all the components in a row. 406 * If the resulting layout is smaller vertically than the area it 407 * needs to fill, the extra space is distributed to each row in 408 * proportion to its weight. A row that has a weight of zero receives no 409 * extra space. 410 * <p> 411 * If all the weights are zero, all the extra space appears between 412 * the grids of the cell and the top and bottom edges. 413 * <p> 414 * The default value of this field is <code>0</code>. 415 * <code>weighty</code> should be a non-negative value. 416 * @serial 417 * @see #clone() 418 * @see java.awt.GridBagConstraints#weightx 419 */ 420 public double weighty; 421 422 /** 423 * This field is used when the component is smaller than its 424 * display area. It determines where, within the display area, to 425 * place the component. 426 * <p> There are three kinds of possible values: orientation 427 * relative, baseline relative and absolute. Orientation relative 428 * values are interpreted relative to the container's component 429 * orientation property, baseline relative values are interpreted 430 * relative to the baseline and absolute values are not. The 431 * absolute values are: 432 * <code>CENTER</code>, <code>NORTH</code>, <code>NORTHEAST</code>, 433 * <code>EAST</code>, <code>SOUTHEAST</code>, <code>SOUTH</code>, 434 * <code>SOUTHWEST</code>, <code>WEST</code>, and <code>NORTHWEST</code>. 435 * The orientation relative values are: <code>PAGE_START</code>, 436 * <code>PAGE_END</code>, 437 * <code>LINE_START</code>, <code>LINE_END</code>, 438 * <code>FIRST_LINE_START</code>, <code>FIRST_LINE_END</code>, 439 * <code>LAST_LINE_START</code> and <code>LAST_LINE_END</code>. The 440 * baseline relative values are: 441 * <code>BASELINE</code>, <code>BASELINE_LEADING</code>, 442 * <code>BASELINE_TRAILING</code>, 443 * <code>ABOVE_BASELINE</code>, <code>ABOVE_BASELINE_LEADING</code>, 444 * <code>ABOVE_BASELINE_TRAILING</code>, 445 * <code>BELOW_BASELINE</code>, <code>BELOW_BASELINE_LEADING</code>, 446 * and <code>BELOW_BASELINE_TRAILING</code>. 447 * The default value is <code>CENTER</code>. 448 * @serial 449 * @see #clone() 450 * @see java.awt.ComponentOrientation 451 */ 452 public int anchor; 453 454 /** 455 * This field is used when the component's display area is larger 456 * than the component's requested size. It determines whether to 457 * resize the component, and if so, how. 458 * <p> 459 * The following values are valid for <code>fill</code>: 460 * 461 * <ul> 462 * <li> 463 * <code>NONE</code>: Do not resize the component. 464 * <li> 465 * <code>HORIZONTAL</code>: Make the component wide enough to fill 466 * its display area horizontally, but do not change its height. 467 * <li> 468 * <code>VERTICAL</code>: Make the component tall enough to fill its 469 * display area vertically, but do not change its width. 470 * <li> 471 * <code>BOTH</code>: Make the component fill its display area 472 * entirely. 473 * </ul> 474 * <p> 475 * The default value is <code>NONE</code>. 476 * @serial 477 * @see #clone() 478 */ 479 public int fill; 480 481 /** 482 * This field specifies the external padding of the component, the 483 * minimum amount of space between the component and the edges of its 484 * display area. 485 * <p> 486 * The default value is <code>new Insets(0, 0, 0, 0)</code>. 487 * @serial 488 * @see #clone() 489 */ 490 public Insets insets; 491 492 /** 493 * This field specifies the internal padding of the component, how much 494 * space to add to the minimum width of the component. The width of 495 * the component is at least its minimum width plus 496 * <code>ipadx</code> pixels. 497 * <p> 498 * The default value is <code>0</code>. 499 * @serial 500 * @see #clone() 501 * @see java.awt.GridBagConstraints#ipady 502 */ 503 public int ipadx; 504 505 /** 506 * This field specifies the internal padding, that is, how much 507 * space to add to the minimum height of the component. The height of 508 * the component is at least its minimum height plus 509 * <code>ipady</code> pixels. 510 * <p> 511 * The default value is 0. 512 * @serial 513 * @see #clone() 514 * @see java.awt.GridBagConstraints#ipadx 515 */ 516 public int ipady; 517 518 /** 519 * Temporary place holder for the x coordinate. 520 * @serial 521 */ 522 int tempX; 523 /** 524 * Temporary place holder for the y coordinate. 525 * @serial 526 */ 527 int tempY; 528 /** 529 * Temporary place holder for the Width of the component. 530 * @serial 531 */ 532 int tempWidth; 533 /** 534 * Temporary place holder for the Height of the component. 535 * @serial 536 */ 537 int tempHeight; 538 /** 539 * The minimum width of the component. It is used to calculate 540 * <code>ipady</code>, where the default will be 0. 541 * @serial 542 * @see #ipady 543 */ 544 int minWidth; 545 /** 546 * The minimum height of the component. It is used to calculate 547 * <code>ipadx</code>, where the default will be 0. 548 * @serial 549 * @see #ipadx 550 */ 551 int minHeight; 552 553 // The following fields are only used if the anchor is 554 // one of BASELINE, BASELINE_LEADING or BASELINE_TRAILING. 555 // ascent and descent include the insets and ipady values. 556 transient int ascent; 557 transient int descent; 558 transient Component.BaselineResizeBehavior baselineResizeBehavior; 559 // The following two fields are used if the baseline type is 560 // CENTER_OFFSET. 561 // centerPadding is either 0 or 1 and indicates if 562 // the height needs to be padded by one when calculating where the 563 // baseline lands 564 transient int centerPadding; 565 // Where the baseline lands relative to the center of the component. 566 transient int centerOffset; 567 568 /* 569 * JDK 1.1 serialVersionUID 570 */ 571 private static final long serialVersionUID = -1000070633030801713L; 572 573 /** 574 * Creates a <code>GridBagConstraint</code> object with 575 * all of its fields set to their default value. 576 */ 577 public GridBagConstraints () { 578 gridx = RELATIVE; 579 gridy = RELATIVE; 580 gridwidth = 1; 581 gridheight = 1; 582 583 weightx = 0; 584 weighty = 0; 585 anchor = CENTER; 586 fill = NONE; 587 588 insets = new Insets(0, 0, 0, 0); 589 ipadx = 0; 590 ipady = 0; 591 } 592 593 /** 594 * Creates a <code>GridBagConstraints</code> object with 595 * all of its fields set to the passed-in arguments. 596 * 597 * Note: Because the use of this constructor hinders readability 598 * of source code, this constructor should only be used by 599 * automatic source code generation tools. 600 * 601 * @param gridx The initial gridx value. 602 * @param gridy The initial gridy value. 603 * @param gridwidth The initial gridwidth value. 604 * @param gridheight The initial gridheight value. 605 * @param weightx The initial weightx value. 606 * @param weighty The initial weighty value. 607 * @param anchor The initial anchor value. 608 * @param fill The initial fill value. 609 * @param insets The initial insets value. 610 * @param ipadx The initial ipadx value. 611 * @param ipady The initial ipady value. 612 * 613 * @see java.awt.GridBagConstraints#gridx 614 * @see java.awt.GridBagConstraints#gridy | 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 package java.awt; 26 27 /** 28 * The {@code GridBagConstraints} class specifies constraints 29 * for components that are laid out using the 30 * {@code GridBagLayout} class. 31 * 32 * @author Doug Stein 33 * @author Bill Spitzak (orignial NeWS & OLIT implementation) 34 * @see java.awt.GridBagLayout 35 * @since 1.0 36 */ 37 public class GridBagConstraints implements Cloneable, java.io.Serializable { 38 39 /** 40 * Specifies that this component is the next-to-last component in its 41 * column or row ({@code gridwidth}, {@code gridheight}), 42 * or that this component be placed next to the previously added 43 * component ({@code gridx}, {@code gridy}). 44 * @see java.awt.GridBagConstraints#gridwidth 45 * @see java.awt.GridBagConstraints#gridheight 46 * @see java.awt.GridBagConstraints#gridx 47 * @see java.awt.GridBagConstraints#gridy 48 */ 49 public static final int RELATIVE = -1; 50 51 /** 52 * Specifies that this component is the 53 * last component in its column or row. 54 */ 55 public static final int REMAINDER = 0; 56 57 /** 58 * Do not resize the component. 59 */ 60 public static final int NONE = 0; 61 62 /** 63 * Resize the component both horizontally and vertically. 177 178 /** 179 * Place the component in the corner of its display area where 180 * the last line of text on a page would normally start for the current 181 * {@code ComponentOrientation}. Equal to SOUTHWEST for horizontal, 182 * left-to-right orientations and SOUTHEAST for horizontal, right-to-left 183 * orientations. 184 */ 185 public static final int LAST_LINE_START = 25; 186 187 /** 188 * Place the component in the corner of its display area where 189 * the last line of text on a page would normally end for the current 190 * {@code ComponentOrientation}. Equal to SOUTHEAST for horizontal, 191 * left-to-right orientations and SOUTHWEST for horizontal, right-to-left 192 * orientations. 193 */ 194 public static final int LAST_LINE_END = 26; 195 196 /** 197 * Possible value for the {@code anchor} field. Specifies 198 * that the component should be horizontally centered and 199 * vertically aligned along the baseline of the prevailing row. 200 * If the component does not have a baseline it will be vertically 201 * centered. 202 * 203 * @since 1.6 204 */ 205 public static final int BASELINE = 0x100; 206 207 /** 208 * Possible value for the {@code anchor} field. Specifies 209 * that the component should be horizontally placed along the 210 * leading edge. For components with a left-to-right orientation, 211 * the leading edge is the left edge. Vertically the component is 212 * aligned along the baseline of the prevailing row. If the 213 * component does not have a baseline it will be vertically 214 * centered. 215 * 216 * @since 1.6 217 */ 218 public static final int BASELINE_LEADING = 0x200; 219 220 /** 221 * Possible value for the {@code anchor} field. Specifies 222 * that the component should be horizontally placed along the 223 * trailing edge. For components with a left-to-right 224 * orientation, the trailing edge is the right edge. Vertically 225 * the component is aligned along the baseline of the prevailing 226 * row. If the component does not have a baseline it will be 227 * vertically centered. 228 * 229 * @since 1.6 230 */ 231 public static final int BASELINE_TRAILING = 0x300; 232 233 /** 234 * Possible value for the {@code anchor} field. Specifies 235 * that the component should be horizontally centered. Vertically 236 * the component is positioned so that its bottom edge touches 237 * the baseline of the starting row. If the starting row does not 238 * have a baseline it will be vertically centered. 239 * 240 * @since 1.6 241 */ 242 public static final int ABOVE_BASELINE = 0x400; 243 244 /** 245 * Possible value for the {@code anchor} field. Specifies 246 * that the component should be horizontally placed along the 247 * leading edge. For components with a left-to-right orientation, 248 * the leading edge is the left edge. Vertically the component is 249 * positioned so that its bottom edge touches the baseline of the 250 * starting row. If the starting row does not have a baseline it 251 * will be vertically centered. 252 * 253 * @since 1.6 254 */ 255 public static final int ABOVE_BASELINE_LEADING = 0x500; 256 257 /** 258 * Possible value for the {@code anchor} field. Specifies 259 * that the component should be horizontally placed along the 260 * trailing edge. For components with a left-to-right 261 * orientation, the trailing edge is the right edge. Vertically 262 * the component is positioned so that its bottom edge touches 263 * the baseline of the starting row. If the starting row does not 264 * have a baseline it will be vertically centered. 265 * 266 * @since 1.6 267 */ 268 public static final int ABOVE_BASELINE_TRAILING = 0x600; 269 270 /** 271 * Possible value for the {@code anchor} field. Specifies 272 * that the component should be horizontally centered. Vertically 273 * the component is positioned so that its top edge touches the 274 * baseline of the starting row. If the starting row does not 275 * have a baseline it will be vertically centered. 276 * 277 * @since 1.6 278 */ 279 public static final int BELOW_BASELINE = 0x700; 280 281 /** 282 * Possible value for the {@code anchor} field. Specifies 283 * that the component should be horizontally placed along the 284 * leading edge. For components with a left-to-right orientation, 285 * the leading edge is the left edge. Vertically the component is 286 * positioned so that its top edge touches the baseline of the 287 * starting row. If the starting row does not have a baseline it 288 * will be vertically centered. 289 * 290 * @since 1.6 291 */ 292 public static final int BELOW_BASELINE_LEADING = 0x800; 293 294 /** 295 * Possible value for the {@code anchor} field. Specifies 296 * that the component should be horizontally placed along the 297 * trailing edge. For components with a left-to-right 298 * orientation, the trailing edge is the right edge. Vertically 299 * the component is positioned so that its top edge touches the 300 * baseline of the starting row. If the starting row does not 301 * have a baseline it will be vertically centered. 302 * 303 * @since 1.6 304 */ 305 public static final int BELOW_BASELINE_TRAILING = 0x900; 306 307 /** 308 * Specifies the cell containing the leading edge of the component's 309 * display area, where the first cell in a row has {@code gridx=0}. 310 * The leading edge of a component's display area is its left edge for 311 * a horizontal, left-to-right container and its right edge for a 312 * horizontal, right-to-left container. 313 * The value 314 * {@code RELATIVE} specifies that the component be placed 315 * immediately following the component that was added to the container 316 * just before this component was added. 317 * <p> 318 * The default value is {@code RELATIVE}. 319 * {@code gridx} should be a non-negative value. 320 * @serial 321 * @see #clone() 322 * @see java.awt.GridBagConstraints#gridy 323 * @see java.awt.ComponentOrientation 324 */ 325 public int gridx; 326 327 /** 328 * Specifies the cell at the top of the component's display area, 329 * where the topmost cell has {@code gridy=0}. The value 330 * {@code RELATIVE} specifies that the component be placed just 331 * below the component that was added to the container just before 332 * this component was added. 333 * <p> 334 * The default value is {@code RELATIVE}. 335 * {@code gridy} should be a non-negative value. 336 * @serial 337 * @see #clone() 338 * @see java.awt.GridBagConstraints#gridx 339 */ 340 public int gridy; 341 342 /** 343 * Specifies the number of cells in a row for the component's 344 * display area. 345 * <p> 346 * Use {@code REMAINDER} to specify that the component's 347 * display area will be from {@code gridx} to the last 348 * cell in the row. 349 * Use {@code RELATIVE} to specify that the component's 350 * display area will be from {@code gridx} to the next 351 * to the last one in its row. 352 * <p> 353 * {@code gridwidth} should be non-negative and the default 354 * value is 1. 355 * @serial 356 * @see #clone() 357 * @see java.awt.GridBagConstraints#gridheight 358 */ 359 public int gridwidth; 360 361 /** 362 * Specifies the number of cells in a column for the component's 363 * display area. 364 * <p> 365 * Use {@code REMAINDER} to specify that the component's 366 * display area will be from {@code gridy} to the last 367 * cell in the column. 368 * Use {@code RELATIVE} to specify that the component's 369 * display area will be from {@code gridy} to the next 370 * to the last one in its column. 371 * <p> 372 * {@code gridheight} should be a non-negative value and the 373 * default value is 1. 374 * @serial 375 * @see #clone() 376 * @see java.awt.GridBagConstraints#gridwidth 377 */ 378 public int gridheight; 379 380 /** 381 * Specifies how to distribute extra horizontal space. 382 * <p> 383 * The grid bag layout manager calculates the weight of a column to 384 * be the maximum {@code weightx} of all the components in a 385 * column. If the resulting layout is smaller horizontally than the area 386 * it needs to fill, the extra space is distributed to each column in 387 * proportion to its weight. A column that has a weight of zero receives 388 * no extra space. 389 * <p> 390 * If all the weights are zero, all the extra space appears between 391 * the grids of the cell and the left and right edges. 392 * <p> 393 * The default value of this field is {@code 0}. 394 * {@code weightx} should be a non-negative value. 395 * @serial 396 * @see #clone() 397 * @see java.awt.GridBagConstraints#weighty 398 */ 399 public double weightx; 400 401 /** 402 * Specifies how to distribute extra vertical space. 403 * <p> 404 * The grid bag layout manager calculates the weight of a row to be 405 * the maximum {@code weighty} of all the components in a row. 406 * If the resulting layout is smaller vertically than the area it 407 * needs to fill, the extra space is distributed to each row in 408 * proportion to its weight. A row that has a weight of zero receives no 409 * extra space. 410 * <p> 411 * If all the weights are zero, all the extra space appears between 412 * the grids of the cell and the top and bottom edges. 413 * <p> 414 * The default value of this field is {@code 0}. 415 * {@code weighty} should be a non-negative value. 416 * @serial 417 * @see #clone() 418 * @see java.awt.GridBagConstraints#weightx 419 */ 420 public double weighty; 421 422 /** 423 * This field is used when the component is smaller than its 424 * display area. It determines where, within the display area, to 425 * place the component. 426 * <p> There are three kinds of possible values: orientation 427 * relative, baseline relative and absolute. Orientation relative 428 * values are interpreted relative to the container's component 429 * orientation property, baseline relative values are interpreted 430 * relative to the baseline and absolute values are not. The 431 * absolute values are: 432 * {@code CENTER}, {@code NORTH}, {@code NORTHEAST}, 433 * {@code EAST}, {@code SOUTHEAST}, {@code SOUTH}, 434 * {@code SOUTHWEST}, {@code WEST}, and {@code NORTHWEST}. 435 * The orientation relative values are: {@code PAGE_START}, 436 * {@code PAGE_END}, 437 * {@code LINE_START}, {@code LINE_END}, 438 * {@code FIRST_LINE_START}, {@code FIRST_LINE_END}, 439 * {@code LAST_LINE_START} and {@code LAST_LINE_END}. The 440 * baseline relative values are: 441 * {@code BASELINE}, {@code BASELINE_LEADING}, 442 * {@code BASELINE_TRAILING}, 443 * {@code ABOVE_BASELINE}, {@code ABOVE_BASELINE_LEADING}, 444 * {@code ABOVE_BASELINE_TRAILING}, 445 * {@code BELOW_BASELINE}, {@code BELOW_BASELINE_LEADING}, 446 * and {@code BELOW_BASELINE_TRAILING}. 447 * The default value is {@code CENTER}. 448 * @serial 449 * @see #clone() 450 * @see java.awt.ComponentOrientation 451 */ 452 public int anchor; 453 454 /** 455 * This field is used when the component's display area is larger 456 * than the component's requested size. It determines whether to 457 * resize the component, and if so, how. 458 * <p> 459 * The following values are valid for {@code fill}: 460 * 461 * <ul> 462 * <li> 463 * {@code NONE}: Do not resize the component. 464 * <li> 465 * {@code HORIZONTAL}: Make the component wide enough to fill 466 * its display area horizontally, but do not change its height. 467 * <li> 468 * {@code VERTICAL}: Make the component tall enough to fill its 469 * display area vertically, but do not change its width. 470 * <li> 471 * {@code BOTH}: Make the component fill its display area 472 * entirely. 473 * </ul> 474 * <p> 475 * The default value is {@code NONE}. 476 * @serial 477 * @see #clone() 478 */ 479 public int fill; 480 481 /** 482 * This field specifies the external padding of the component, the 483 * minimum amount of space between the component and the edges of its 484 * display area. 485 * <p> 486 * The default value is {@code new Insets(0, 0, 0, 0)}. 487 * @serial 488 * @see #clone() 489 */ 490 public Insets insets; 491 492 /** 493 * This field specifies the internal padding of the component, how much 494 * space to add to the minimum width of the component. The width of 495 * the component is at least its minimum width plus 496 * {@code ipadx} pixels. 497 * <p> 498 * The default value is {@code 0}. 499 * @serial 500 * @see #clone() 501 * @see java.awt.GridBagConstraints#ipady 502 */ 503 public int ipadx; 504 505 /** 506 * This field specifies the internal padding, that is, how much 507 * space to add to the minimum height of the component. The height of 508 * the component is at least its minimum height plus 509 * {@code ipady} pixels. 510 * <p> 511 * The default value is 0. 512 * @serial 513 * @see #clone() 514 * @see java.awt.GridBagConstraints#ipadx 515 */ 516 public int ipady; 517 518 /** 519 * Temporary place holder for the x coordinate. 520 * @serial 521 */ 522 int tempX; 523 /** 524 * Temporary place holder for the y coordinate. 525 * @serial 526 */ 527 int tempY; 528 /** 529 * Temporary place holder for the Width of the component. 530 * @serial 531 */ 532 int tempWidth; 533 /** 534 * Temporary place holder for the Height of the component. 535 * @serial 536 */ 537 int tempHeight; 538 /** 539 * The minimum width of the component. It is used to calculate 540 * {@code ipady}, where the default will be 0. 541 * @serial 542 * @see #ipady 543 */ 544 int minWidth; 545 /** 546 * The minimum height of the component. It is used to calculate 547 * {@code ipadx}, where the default will be 0. 548 * @serial 549 * @see #ipadx 550 */ 551 int minHeight; 552 553 // The following fields are only used if the anchor is 554 // one of BASELINE, BASELINE_LEADING or BASELINE_TRAILING. 555 // ascent and descent include the insets and ipady values. 556 transient int ascent; 557 transient int descent; 558 transient Component.BaselineResizeBehavior baselineResizeBehavior; 559 // The following two fields are used if the baseline type is 560 // CENTER_OFFSET. 561 // centerPadding is either 0 or 1 and indicates if 562 // the height needs to be padded by one when calculating where the 563 // baseline lands 564 transient int centerPadding; 565 // Where the baseline lands relative to the center of the component. 566 transient int centerOffset; 567 568 /* 569 * JDK 1.1 serialVersionUID 570 */ 571 private static final long serialVersionUID = -1000070633030801713L; 572 573 /** 574 * Creates a {@code GridBagConstraint} object with 575 * all of its fields set to their default value. 576 */ 577 public GridBagConstraints () { 578 gridx = RELATIVE; 579 gridy = RELATIVE; 580 gridwidth = 1; 581 gridheight = 1; 582 583 weightx = 0; 584 weighty = 0; 585 anchor = CENTER; 586 fill = NONE; 587 588 insets = new Insets(0, 0, 0, 0); 589 ipadx = 0; 590 ipady = 0; 591 } 592 593 /** 594 * Creates a {@code GridBagConstraints} object with 595 * all of its fields set to the passed-in arguments. 596 * 597 * Note: Because the use of this constructor hinders readability 598 * of source code, this constructor should only be used by 599 * automatic source code generation tools. 600 * 601 * @param gridx The initial gridx value. 602 * @param gridy The initial gridy value. 603 * @param gridwidth The initial gridwidth value. 604 * @param gridheight The initial gridheight value. 605 * @param weightx The initial weightx value. 606 * @param weighty The initial weighty value. 607 * @param anchor The initial anchor value. 608 * @param fill The initial fill value. 609 * @param insets The initial insets value. 610 * @param ipadx The initial ipadx value. 611 * @param ipady The initial ipady value. 612 * 613 * @see java.awt.GridBagConstraints#gridx 614 * @see java.awt.GridBagConstraints#gridy |