各种JPanel边框的设计:
* 1:组件拥有方法setBorder(Border b)用来设置组件边框
* 2:Border是一个接口 他的实现类代表各种风格的不同边框类
* 3:BevelBorder;LineBorder;EmptyBorder;;EtchedBorder;
* 4:TitledBorder标题边框 需要传入一个已经存在的边框
* 5:CompoundBorder组合边框 需要传入两个的边框
* 6:MatteBorder是EmptyBorder的子类
* 7:Swing还提供了BorderFactory静态工厂 静态方法用于返回Border的实例
* 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;
}
}