现在要使用一种外部字体,操作系统安装之后,word之类的可以识别并使用这个外部字体,但在java重使用,外部字体显示出来的是方框,有文章指出需要在font.properties文件里添加新字体,这样jvm才能识别新字体,不过还没有试验成功!望有经验的高手指点下,如有源代码,感激不尽!

解决方案 »

  1.   

    是什么操作系统啊?如果是 Redhat 请参考这里的文章:
    Java , Installanywhere 在 Redhat 上的中文问题解决方法
    http://blog.csdn.net/jacklondon/archive/2003/05/18/14263.aspx
      

  2.   

    操作系统是 windows XP ,有相应的解决实例么?找了一些资料,大多是Linux的......
      

  3.   

    windows XP 中的新字体,只要放在 Windows 的 fonts 目录下,会自动被找到的。如果是英文 Windows 中用中文字体,可能会有一点麻烦。
      

  4.   

    操作系统添加新字体不是问题,问题是要在JAVA程序中引用外部的字体,没有实验成功,不知道时候有人做过类似的经历!
      

  5.   

    java 中使用字体,构建一个 Font 就可以了。
    你是怎么使用的?
      

  6.   

    Font没错啊,但是你试过其他的样式的字体么?除了系统安装以外的字体,手动安装的外部字体?
      

  7.   

    这是我以前在程序中安装外部字体的代码,翻出来你看看。一直没正正用过,觉得外部安装的字体还不如系统工字体。
    import java.awt.*;
    import javax.swing.*;
    import java.io.*;
    public class LoadFont
    {
            //第一个参数是外部字体名,第二个是字体大小
    public static Font loadFont(String fontFileName, float fontSize)
    {
    try
    {
    File file = new File(fontFileName);
    FileInputStream fis = new FileInputStream(file);
    Font dynamicFont = Font.createFont(Font.TRUETYPE_FONT, fis);
    Font dynamicFontPt = dynamicFont.deriveFont(fontSize);
    fis.close();
    return dynamicFontPt;
    }
    catch(Exception e)
    {
    e.printStackTrace();
    return new java.awt.Font("宋体", Font.PLAIN, 14);
    }
    }
    }
    下面是调用上面的方法:
    Font font = LoadFont.loadFont("font\\汉仪细行楷简.ttf", 16f);
    lblReaderID.setFont(font);