现在的位置: 首页 > 综合 > 正文

边框的设计

2018年05月27日 ⁄ 综合 ⁄ 共 1689字 ⁄ 字号 评论关闭

各种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;

	}

}


抱歉!评论已关闭.