JComponent同樣包括一個稱為setBorder()的方法,該方法允許我們安放一些各種各樣有趣的邊框到一些可見的組件上。下面的程序例子利用一個創建JPanel並安放邊框到每個例子中的被稱為showBorder()的方法,示范了一些有用的不同的邊框。同樣,它也使用RTTI來找我們使用的邊框名(剔除所有的路徑信息),然後將邊框名放到面板中間的JLable裡:
//: Borders.java
// Different Swing borders
package c13.swing;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
public class Borders extends JPanel {
static JPanel showBorder(Border b) {
JPanel jp = new JPanel();
jp.setLayout(new BorderLayout());
String nm = b.getClass().toString();
nm = nm.substring(nm.lastIndexOf('.') + 1);
jp.add(new JLabel(nm, JLabel.CENTER),
BorderLayout.CENTER);
jp.setBorder(b);
return jp;
}
public Borders() {
setLayout(new GridLayout(2,4));
add(showBorder(new TitledBorder("Title")));
add(showBorder(new EtchedBorder()));
add(showBorder(new LineBorder(Color.blue)));
add(showBorder(
new MatteBorder(5,5,30,30,Color.green)));
add(showBorder(
new BevelBorder(BevelBorder.RAISED)));
add(showBorder(
new SoftBevelBorder(BevelBorder.LOWERED)));
add(showBorder(new CompoundBorder(
new EtchedBorder(),
new LineBorder(Color.red))));
}
public static void main(String args[]) {
Show.inFrame(new Borders(), 500, 300);
}
} ///:~
這一節中大多數程序例子都使用TitledBorder,但我們可以注意到其余的邊框也同樣易於使用。能創建我們自己的邊框並安放它們到按鈕、標簽等等內——任何來自JComponent的東西。