对Swing Border的一个小总结:
使用方法:
TitledBorder nameTitle =new TitledBorder("FileName List");
JPanel panel1 = new new JPanel()
panel1.setBorder(nameTitle);
TitledBorder 该类实现在指定位置以指定对齐方式显示字符串标题的任意边框。
EtchedBorder 该类实现简单的浮雕化边框,它既可以是阴刻浮雕化边框,也可以是LineBorder 阳刻浮雕化边框。如果创建边框时未初始化任何高亮/阴影颜色,则这些颜色将从传递给 paintBorder() 方法的组件参数的背景色动态派生。
实现单色、任意厚度线边框的类。
MatteBorder 该类提供类似衬边的边框,衬边图案既可以是纯色也可以是平铺的图标。
BevelBorder 该类实现简单的双线斜面边框。
SoftBevelBorder实现某种斜面的类,这种斜面要么凸出要么凹入且拐角圆滑。
CompoundBorder一个复合 Border 类,通过将内部 Border 对象嵌套到外部 Border 对象的 insets 中实现将两个 Border 对象合并为一个单个边框。
import java.awt.BorderLayout;
import java.awt.Color; import java.awt.Container; import java.awt.GridLayout; import javax.swing.JApplet; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.border.BevelBorder; import javax.swing.border.Border; import javax.swing.border.CompoundBorder; import javax.swing.border.EtchedBorder; import javax.swing.border.LineBorder; import javax.swing.border.MatteBorder; import javax.swing.border.SoftBevelBorder; import javax.swing.border.TitledBorder; 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) { run(new Borders(), 500, 300); } public static void run(JApplet applet, int width, int height) { JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().add(applet); frame.setSize(width, height); applet.init(); applet.start(); frame.setVisible(true); } }
来源:
http://javapub.iteye.com/blog/676699
以下是效果图: