java使用第三方字体库的方法,使用第三方ttf/ttc等字体库的方法

java 文件中加一个loadfont的内部类:

class Loadfont
{
    public static Font loadFont(String fontFileName, float fontSize)  //第一个参数是外部字体名,第二个是字体大小
    {
        try
        {
            File file = new File(fontFileName);
            FileInputStream aixing = new FileInputStream(file);
            Font dynamicFont = Font.createFont(Font.TRUETYPE_FONT, aixing);
            Font dynamicFontPt = dynamicFont.deriveFont(fontSize);
            aixing.close();
            return dynamicFontPt;
        }
        catch(Exception e)//异常处理
        {
            e.printStackTrace();
            return new java.awt.Font("宋体", Font.PLAIN, 12);
        }
    }
    public static java.awt.Font Font(){
        String root=System.getProperty("user.dir");//项目根目录路径
        System.out.println(root);
        Font font = Loadfont.loadFont(root+"/simsun.ttc", 12f);//调用
        return font;//返回字体
    }
    public static java.awt.Font Font2(){
        String root=System.getProperty("user.dir");//项目根目录路径
        System.out.println(root);
        Font font = Loadfont.loadFont(root+"/simsun.ttc", 12f);
        return font;//返回字体
    }
}

 

使用方法:

String root=System.getProperty("user.dir");
String fontname = "Droid Serif";
Font font =Loadfont.loadFont(root+"/xx.ttf", 16f);---->修改成需要的xx.ttf字体库文件。

如果还不行,可以尝试双击ttf文件,安装一下(前题是Windows系统),上面内部类,测试可以,不需要安装ttf文件。

或者直接将ttf文件放到jre/lib/fonts目录下,如果没有目录可以mkdir

在new Font("ddd", xx, xx);  ----->ddd 是双击aa.ttf文件字体名,而不是文件名。

 

你可能感兴趣的:(java)