Java Swing Border(Swing 边框) 归纳

来源:互联网 发布:mysql ubuntu php 编辑:程序博客网 时间:2024/06/05 12:41
对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 对象合并为一个单个边框。 

例子: 
Java代码  收藏代码
  1. // : c14:Borders.java  
  2. // Different Swing borders.  
  3. // <applet code=Borders width=500 height=300></applet>  
  4. // From 'Thinking in Java, 3rd ed.' (c) Bruce Eckel 2002  
  5. // www.BruceEckel.com. See copyright notice in CopyRight.txt.  
  6.   
  7. import java.awt.BorderLayout;  
  8. import java.awt.Color;  
  9. import java.awt.Container;  
  10. import java.awt.GridLayout;  
  11.   
  12. import javax.swing.JApplet;  
  13. import javax.swing.JFrame;  
  14. import javax.swing.JLabel;  
  15. import javax.swing.JPanel;  
  16. import javax.swing.border.BevelBorder;  
  17. import javax.swing.border.Border;  
  18. import javax.swing.border.CompoundBorder;  
  19. import javax.swing.border.EtchedBorder;  
  20. import javax.swing.border.LineBorder;  
  21. import javax.swing.border.MatteBorder;  
  22. import javax.swing.border.SoftBevelBorder;  
  23. import javax.swing.border.TitledBorder;  
  24.   
  25. public class Borders extends JApplet {  
  26.   static JPanel showBorder(Border b) {  
  27.     JPanel jp = new JPanel();  
  28.     jp.setLayout(new BorderLayout());  
  29.     String nm = b.getClass().toString();  
  30.     nm = nm.substring(nm.lastIndexOf('.') + 1);  
  31.     jp.add(new JLabel(nm, JLabel.CENTER), BorderLayout.CENTER);  
  32.     jp.setBorder(b);  
  33.     return jp;  
  34.   }  
  35.   
  36.   public void init() {  
  37.     Container cp = getContentPane();  
  38.     cp.setLayout(new GridLayout(24));  
  39.     cp.add(showBorder(new TitledBorder("Title")));  
  40.     cp.add(showBorder(new EtchedBorder()));  
  41.     cp.add(showBorder(new LineBorder(Color.BLUE)));  
  42.     cp.add(showBorder(new MatteBorder(553030, Color.GREEN)));  
  43.     cp.add(showBorder(new BevelBorder(BevelBorder.RAISED)));  
  44.     cp.add(showBorder(new SoftBevelBorder(BevelBorder.LOWERED)));  
  45.     cp.add(showBorder(new CompoundBorder(new EtchedBorder(),  
  46.         new LineBorder(Color.RED))));  
  47.   }  
  48.   
  49.   public static void main(String[] args) {  
  50.     run(new Borders(), 500300);  
  51.   }  
  52.   
  53.   public static void run(JApplet applet, int width, int height) {  
  54.     JFrame frame = new JFrame();  
  55.     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  56.     frame.getContentPane().add(applet);  
  57.     frame.setSize(width, height);  
  58.     applet.init();  
  59.     applet.start();  
  60.     frame.setVisible(true);  
  61.   }  
  62. ///:~