Border的使用

Border的使用

Border类是应用在描绘组件的边界,Border本身是一个interface,里面定义了3个方法,为getBorderInsets()、isBorderOpaque() 、与isBorderOpaque()、与paintBorder().若您想使用Border类来绘制你的窗口边界,您必须先实现(implements)这3个方法,可说 是有点麻烦。还好,java本身提供了另一个类,它已经实现了Border类所有的方法,且提供许多不同的边界样式供用户使用,用户 只需要选择到底要用哪个样式即可,不需要理会如何去画出这个边界,因为这个类已经都帮您实现好了,这个类就是 BorderFactory,下面是borderFactory的类层次结构图。

BorderFactory的类层次结构图:

 java.lang.Object
  -----------javax.swing.BorderFactory
SimpleBorder.java
 import javax.swing.border.*;
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    
    public class SimpleBorder{
    public static void main(String[] args){
    JFrame f=new JFrame("SimpleBorder");
    Container content=f.getContentPane();
    JButton b=new JButton();
    b.setBorder(BorderFactory.createLineBorder(Color.blue,10);//createLineBorder方法指定边界的颜色与宽度.
    content.add(b);
    f.setSize(200,150);
    f.show();
    f.addWindowListener(new WindowAdapter(){
    public void windowClosing(WindowEvent e){
    System.exit(0);
    }	
    });   	
    }
    }
BorderFactory提供了以下方法:
    static Border          creatBevelBorder(int type)建立一个立体的边界,并由参数type指定为凹陷或突起,type可为
    BevelBorder.LOWERED表示凹陷,或是BevelBorder.RAISED表示突起。
    static Border          createBevelBorder(int type,Color highlight,Color shadow)建立一个立体的边界,并指定突边与阴
    影的颜色。
    static Border          createBevelBorder(int type,Color highlightOuter,Color highlightInner,Color shadowOuter
    ,Color shadowInner)建立一个立体的边界,并指定内外部的突边与阴影的颜色。
    static CompoundBorder  createCompoundBorder()建立一个复合边界。 
    static CompoundBorder  createCompoundBorder(Border outsideBorder,Border insideBorder)建立一个复合边界,并指定它
    的内外边界。
    static Border          createEmptyBorder()建立一个空的边界。
    static Border          createEmptyBorder(int top,int left,int bottom,int right)建立一个空的边界,并指定上下左右
    的宽度,在这些宽度中不能作绘图的效果。
    static Border          createEtchedBorder()建立一个四周有凹痕的边界。
    static Border          createEtchedBorder(Color highlight,Color shadow)建立一个四周有凹痕的边界,并指定突边与阴影
    的颜色。 
    static Border          createLineBorder(Color color)
    建立一个线务边界,并指定线条的颜色。
    static Border          createLineBorder(Color color,int thicness)
    建立一个线务边界,并指定线条的颜色与宽度。
    static Border          createLoweredBevelBorder()建立一个具有凹陷效果的边界,意义与
    createBevelBorder(BevelBorder.LOWERED)相同。
    static MatteBorder     createMatteBorder(int top,int left,int bottom,int right,Color color)建立一个垫子边界,这跟
    createEmptyBorder有点像,但可以指定边界颜色。
    static MatteBorder     createMatteBorder(int top,int left,int bottom,int right,Icon tileIcom)建立一个垫子边界,并
    指定边界的花纹。
    static Border          createRaisedBevelBorder()建立一个具有突起效果的边界,意义与createBevelBorder(BevelBorder.
    RAISED)相同。
    static TitledBorder    createTitledBorder(Border border)建立一个标题边界,但没有标题名称。
    static TitledBorder    createTitledBorder(Border border,String title)建立一个标题边界,并指定标题名称,标题默认位
    置是TitledBorder.DEFAULT_JUSTIFICATION与TitledBorder.DEFAULT_POSITION,也就是左上方。
    static TitledBorder    createTitledBorder(Border border,String title,int titleJustification,int titlePosition)
    建立一个标题边界,并指定标题名称与标题位置,参数titleJustification可为:
    TitledBorder.LEFT
    TitledBorder.CENTER
    TitledBorder.RIGHT
    TitledBorder.DEFAULT_JUSTIFICATION(leading)
    参数titlePosition可为:
    TitedBorder.ABOVE_TOP
    TitledBorder.TOP(sittin on the top line)
    TitledBorder.BELOW_TOP
    TitledBorder.ABOVE_BOTTOM
    TitledBorder.BOTTOM(sitting on the bottom line)
    TitledBorder.BELOW_BOTTOM
    TitledBorder.DEFAULT_POSITION(top)
    static TitledBorder    createTitledBorder(Border border,String title,int titleJustification,int titlePosition,
    Font titleFont)建立一个标题边界,并指定标题名称,标题位置与字体。
    
    static TitledBorder    createTitledBorder(Border border,String title,int titleJustification,int titlePosition,
    Font titleFont,Color titleColor)建立一个标题边界,并指定标题名称,标题位置、字体与标题颜
    色。
    static TitledBorder    createTitledBorder(String title)建立一个标题边界,并指定标题名称,其他为默认值。
BorderDemo.java
import javax.swing.border.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class BorderDemo {
	public static void main(String[] args) {
		JFrame f = new JFrame("BorderDemo");
		Container content = f.getContentPane();
		JLabel label = new JLabel();
		// label.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));//凹陷效果
		// label.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));//突起效果

		// 凹陷效果,并设置突出与阴影的颜色
		// label.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED,Color.red,Color.blue));

		// 凹陷效果,并设置内外部突出与阴影的颜色
		// label.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED,Color.red,Color.blue,Color.yellow,Color.green));

		/*
		 * EmptyBorder:建立一个空的边界,可指定边界的宽度,这在区隔组件之间的距离时可能用到。
		 * EtchedBorder:建立一个四周有凹痕的边界,也可以指定突边与阴影的颜色.
		 */
		// label.setBorder(BorderFactory.createEtchedBorder());

		// 设置四周有凹痕的边界,并指定内外部的突边与阴影的颜色
		// label.setBorder(BorderFactory.createEtchedBorder(Color.red,Color.blue));

		// LineBorder:建立一个线条边界,并可以指定线条的颜色与宽度。
		// label.setBorder(BorderFactory.createLineBorder(Color.blue,5));

		// MatteBorder:建立一个Matte边界,这个方法与createEmptyBorder()有点像,但可以指定边界颜色
		// 或利用Icon产生边界花纹.
		// label.setBorder(BorderFactory.createMatteBorder(5,5,5,5,Color.green));

		// label.setBorder(BorderFactory.createMatteBorder(25,25,25,25,new
		// ImageIcon(".\\icons\\star.gif")));

		/*
		 * CompoundBorder: 建立一个复合边界,并可以指定它的内外边界,例如我们可以指定它的外边界为LineBorder,
		 * 它的内边界为MatteBorder。
		 */
		// label.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createLineBorder(Color.blue,5),
		// BorderFactory.createMatteBorder(20,20,18,18,new
		// ImageIcon(".\\icons\\star.gif"))));

		// TitleBorder:建立一个标题边界,我们可以指定边界的标题名称、标题位置、字体与标题颜色。
		// label.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.blue,5),"Line Border"
		// ,TitledBorder.LEFT,TitledBorder.TOP));

		label.setBorder(BorderFactory.createTitledBorder(BorderFactory
				.createLineBorder(Color.blue, 5), "Line Border",
				TitledBorder.LEFT, TitledBorder.ABOVE_TOP, new Font(
						"SansSerif", Font.ITA_LIC, 14), Color.red));
		content.add(label);
		f.setSize(200, 150);
		f.show();
		f.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值