JComponent 有一个 setBorder( )方法,它允许你为任何可视组件设置各种边框。下面的
例子使用 showBorder( )方法演示了一些可用的边框。此方法先创建一个 JPanel,然后设
置相应的边框。此外,它还使用 RTTI(运行时类型识别)来得到正在使用的边框名称(去掉
了路径信息),然后把这个名称放进面板中间的一个 JLabel 中:
//: c14:Borders.java
// Different Swing borders.
// <applet code=Borders width=500 height=300></applet>
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.border.*;
import com.bruceeckel.swing.*;
public class Borders extends JApplet {
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 void init() {
Container cp = getContentPane();
cp.setLayout(new GridLayout(2,4));
cp.add(showBorder(new TitledBorder("Title")));
cp.add(showBorder(new EtchedBorder()));
cp.add(showBorder(new LineBorder(Color.BLUE)));
cp.add(showBorder(
new MatteBorder(5,5,30,30,Color.GREEN)));
cp.add(showBorder(
new BevelBorder(BevelBorder.RAISED)));
cp.add(showBorder(
new SoftBevelBorder(BevelBorder.LOWERED)));
cp.add(showBorder(new CompoundBorder(
new EtchedBorder(),
new LineBorder(Color.RED))));
}
public static void main(String[] args) {
Console.run(new Borders(), 500, 300);
}
} ///:~
你还可以自己编写边框代码,然后把它们加入到按钮、标签等任何从JComponent继承的
例子使用 showBorder( )方法演示了一些可用的边框。此方法先创建一个 JPanel,然后设
置相应的边框。此外,它还使用 RTTI(运行时类型识别)来得到正在使用的边框名称(去掉
了路径信息),然后把这个名称放进面板中间的一个 JLabel 中:
//: c14:Borders.java
// Different Swing borders.
// <applet code=Borders width=500 height=300></applet>
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.border.*;
import com.bruceeckel.swing.*;
public class Borders extends JApplet {
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 void init() {
Container cp = getContentPane();
cp.setLayout(new GridLayout(2,4));
cp.add(showBorder(new TitledBorder("Title")));
cp.add(showBorder(new EtchedBorder()));
cp.add(showBorder(new LineBorder(Color.BLUE)));
cp.add(showBorder(
new MatteBorder(5,5,30,30,Color.GREEN)));
cp.add(showBorder(
new BevelBorder(BevelBorder.RAISED)));
cp.add(showBorder(
new SoftBevelBorder(BevelBorder.LOWERED)));
cp.add(showBorder(new CompoundBorder(
new EtchedBorder(),
new LineBorder(Color.RED))));
}
public static void main(String[] args) {
Console.run(new Borders(), 500, 300);
}
} ///:~
你还可以自己编写边框代码,然后把它们加入到按钮、标签等任何从JComponent继承的
组件中去。