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的東西。