12.2.3 为组件设置边框
12.2.3 为组件设置边框
可以调用JComponent提供的setBorder(Border b)方法为Swing组件设置边框,其中Border是Swing提供的一个接口,用于代表组件的边框。该接口有数量众多的实现类,如LineBorder、MatteBorder、BevelBorder等,这些Border实现类都提供了相应的构造器用于创建Border对象,一旦获取了Border对象之后,就可以调用JComponent的setBorder(Border b)方法为指定组件设置边框。
TitledBorder和CompoundBorder比较独特,其中TitledBorder的作用并不是为其他组件添加边框,而是为其他边框设置标题,当创建TitledBorder对象时,需要传入一个已经存在的Border对象,新创建的TitledBorder对象会为原有的Border对象添加标题;而CompoundBorder用于组合两个边框,因此创建CompoundBorder对象时需要传入两个Border对象,一个用作组件的内边框,一个用作组件的外边框。
除此之外,Swing还提供了一个BorderFactory静态工厂类,该类提供了大量的静态工厂方法用于返回Border实例,这些静态方法的参数与各Border实现类的构造器参数基本一致。
Border不仅提供了上面所提到的一些Border实现类,还提供了	MetalBorders.ToolBarBorder、MetalBorders.TextFieldBorder等Border实现类,这些实现类用作Swing组件的默认边框,程序中通常无须使用这些系统边框。
为Swing组件添加边框可按如下步骤进行:
- 使用BorderFactory或者XxxBorder创建XxxBorder实例。
- 调用Swing组件的setBorder(Border b)方法为该组件设置边框
图12.5显示了系统可用边框之间的继承层次

程序 为Panel容器添加边框
下面的例子程序示范了为Panel容器分别添加如图12.5所示的几种边框。
| 1 | import javax.swing.*; | 
运行上面程序,会看到如图12.6所示的效果。
