|
1 /* |
|
2 * Copyright 1997-1999 Sun Microsystems, Inc. All Rights Reserved. |
|
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
|
4 * |
|
5 * This code is free software; you can redistribute it and/or modify it |
|
6 * under the terms of the GNU General Public License version 2 only, as |
|
7 * published by the Free Software Foundation. Sun designates this |
|
8 * particular file as subject to the "Classpath" exception as provided |
|
9 * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, |
|
22 * CA 95054 USA or visit www.sun.com if you need additional information or |
|
23 * have any questions. |
|
24 */ |
|
25 package javax.swing.border; |
|
26 |
|
27 import java.awt.Graphics; |
|
28 import java.awt.Insets; |
|
29 import java.awt.Rectangle; |
|
30 import java.awt.Component; |
|
31 |
|
32 /** |
|
33 * Interface describing an object capable of rendering a border |
|
34 * around the edges of a swing component. |
|
35 * For examples of using borders see |
|
36 * <a href="http://java.sun.com/docs/books/tutorial/uiswing/misc/border.html">How to Use Borders</a>, |
|
37 * a section in <em>The Java Tutorial.</em> |
|
38 * <p> |
|
39 * In the Swing component set, borders supercede Insets as the |
|
40 * mechanism for creating a (decorated or plain) area around the |
|
41 * edge of a component. |
|
42 * <p> |
|
43 * Usage Notes: |
|
44 * <ul> |
|
45 * <li>Use EmptyBorder to create a plain border (this mechanism |
|
46 * replaces its predecessor, <code>setInsets</code>). |
|
47 * <li>Use CompoundBorder to nest multiple border objects, creating |
|
48 * a single, combined border. |
|
49 * <li>Border instances are designed to be shared. Rather than creating |
|
50 * a new border object using one of border classes, use the |
|
51 * BorderFactory methods, which produces a shared instance of the |
|
52 * common border types. |
|
53 * <li>Additional border styles include BevelBorder, SoftBevelBorder, |
|
54 * EtchedBorder, LineBorder, TitledBorder, and MatteBorder. |
|
55 * <li>To create a new border class, subclass AbstractBorder. |
|
56 * </ul> |
|
57 * |
|
58 * @author David Kloba |
|
59 * @author Amy Fowler |
|
60 * @see javax.swing.BorderFactory |
|
61 * @see EmptyBorder |
|
62 * @see CompoundBorder |
|
63 */ |
|
64 public interface Border |
|
65 { |
|
66 /** |
|
67 * Paints the border for the specified component with the specified |
|
68 * position and size. |
|
69 * @param c the component for which this border is being painted |
|
70 * @param g the paint graphics |
|
71 * @param x the x position of the painted border |
|
72 * @param y the y position of the painted border |
|
73 * @param width the width of the painted border |
|
74 * @param height the height of the painted border |
|
75 */ |
|
76 void paintBorder(Component c, Graphics g, int x, int y, int width, int height); |
|
77 |
|
78 /** |
|
79 * Returns the insets of the border. |
|
80 * @param c the component for which this border insets value applies |
|
81 */ |
|
82 Insets getBorderInsets(Component c); |
|
83 |
|
84 /** |
|
85 * Returns whether or not the border is opaque. If the border |
|
86 * is opaque, it is responsible for filling in it's own |
|
87 * background when painting. |
|
88 */ |
|
89 boolean isBorderOpaque(); |
|
90 } |