各种JPanel边框的设计:
* 1:组件拥有方法setBorder(Border b)用来设置组件边框
* 2:Border是一个接口 他的实现类代表各种风格的不同边框类
* 3:BevelBorder;LineBorder;EmptyBorder;;EtchedBorder;
* 4:TitledBorder标题边框 需要传入一个已经存在的边框
* 5:CompoundBorder组合边框 需要传入两个的边框
* 6:MatteBorder是EmptyBorder的子类
* 7:Swing还提供了BorderFactory静态工厂 静态方法用于返回Border的实例
* 除此之外 实现类的构造函数与静态工厂方法的参数差不多一致
demo1:
public class SwingBorder extends JFrame{ /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub SwingBorder s=new SwingBorder(); } public SwingBorder() { this.setLayout(new GridLayout(2, 4,5,5)); //设置四条颜色与阴影颜色 Border bb=BorderFactory.createBevelBorder(BevelBorder.RAISED, Color.BLUE, Color.green, Color.RED,Color.GRAY); this.add(getPanleBorder(bb,"BevelBorder")); //线条边框 设置整体的粗细和颜色 Border lb=BorderFactory.createLineBorder(Color.BLUE, 10); this.add(getPanleBorder(lb,"LineBorder")); //边框四周是空的 Border eb=BorderFactory.createEmptyBorder(5, 5, 5, 5); this.add(getPanleBorder(eb,"EmptyBorder")); //外颜色与阴影颜色 Border et=BorderFactory.createEtchedBorder(EtchedBorder.RAISED, Color.YELLOW, Color.green); this.add(getPanleBorder(et,"EtchedBorder")); Border title=BorderFactory.createTitledBorder(lb, "标题边框", TitledBorder.LEFT, TitledBorder.TOP, new Font("StSong", Font.BOLD, 15), Color.BLUE); this.add(getPanleBorder(title,"TitledBorder")); //空白边框的子类 可以设置空白区域的大小颜色 MatteBorder ma=new MatteBorder(5, 5, 10, 10,Color.PINK); this.add(getPanleBorder(ma,"MatteBorder")); //组合框 CompoundBorder cb=new CompoundBorder(new LineBorder(Color.RED,8),title); this.add(getPanleBorder(cb,"CompoundBorder")); this.pack(); this.setTitle("边框风格布局案例"); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } private JPanel getPanleBorder(Border b,String name) { JPanel jp=new JPanel(); jp.add(new JLabel(name)); jp.setBorder(b); return jp; } }