\jdkhome\jre\lib\font.properties,改这个文件,
在这个目录下还有好几个font.properties.country(zh,ar)等。

解决方案 »

  1.   

    你按这里介绍的方法试试
    http://www.frontjsp.com.cn/manual/jdk1.2.2-manual/docs/guide/internat/fontprop.html#converter1good luck!
      

  2.   

    hicharlie(黑查理) :
    请问如何修改?
    lingjava(ling) :
    你说得网站我去不了。能贴出来吗?
      

  3.   

    本文档叙述怎样将亚洲和其它语言字体添加到 Java 运行时 JDK 1.2 中。更明确的说,本文档介绍 JDK 1.2 中用于将这些字体添加到 Java 运行时的特殊功能。在将来的 JDK 版本中,该功能很有可能发生改变。这一次,本文讲述怎样在系统上安装日文、韩文、中文及繁体中文字体。JDK 1.2 的 Win32 平台版本支持 TrueType 和 Postscript Type1 字体。JDK 1.2 的 Solaris 平台版本支持能由 X11 服务器处理的可缩放轮廓字体,例如 F3、Type1 及 TrueType。
    命名 font.properties 文件
    JDK 1.2 中捆绑了一些 font.properties 文件。您可以在 Java 安装目录下的 ../lib 目录下找到这些文件。这些文件包含标准字体环境信息。下面的解释假定本文档的读者在英文环境中工作。在英文环境中,缺省 font.properties 文件名没有后缀,如下所示: font.properties然而,不同的操作系统安装有不同的字体,所以规定在读字体属性文件时,文件名中应内嵌操作系统版本。例如,Solaris 2.5.1 不支持 TrueType 字体,所以字体属性文件 font.properties.5.5.1 将只包含 F3 字体。因而,我们首先寻找的文件的文件名为: font.properties.<osVersion>其中 <osVersion> 在大多数系统中是由 System.getProperty("os.version") 返回的版本。在 Windows NT 中,此方法被覆盖,用 NT4.0 代替 4.0 返回,以便区别 NT 和 95。然而,如果环境是日文、韩文、中文或繁体中文,就必须使用相应于特定环境的 font.properties 文件。这些文件可以通过文件名后面添加的国家或 locale 后缀识别,如下所示: font.properties.<locale>其中 locale 是下面中的一个: jakozhzh_TW...选择带有您感兴趣的特定字体后缀的文件。因此,对繁体中文您就可以访问 font.properties.zh_TW 文件。注意:该 <locale> 实际上由 <language>_<region>_<encoding> 构成,其中 <language> 是从 System.getProperty("user.language") 方法返回的字符串 <region> 是从 System.getProperty("user.region") 方法返回的字符串 <encoding> 是从 System.getProperty("file.encoding") 方法返回的字符串 这个 font.properties.<locale> 名也可以添加操作系统版本。概括地讲,按下列顺序搜索字体属性文件: 
    font.properties.<language>_<region>_<encoding>.<osVersion>
    font.properties.<language>_<region>_<encoding>
    font.properties.<language>_<region>.<osVersion>
    font.properties.<language>_<region>
    font.properties.<language>_<encoding>.<osVersion>
    font.properties.<language>_<encoding>
    font.properties.<language>_<osVersion>
    font.properties.<language>
    font.properties.<encoding>.<osVersion>
    font.properties.<encoding>
    font.properties.<osVersion>
    font.properties使用 font.properties 文件
    您必须使用 font.properties 文件以便为 Java 运行时添加字体。该 font.properties 文件是特定于平台的。它指示特定平台用做 Java 虚拟字体的字体。字体按类型或类分组。当前,Java 运行时支持下列字体类: Serif 
    Sans-serif 
    Monospaced 
    Dialog 
    DialogInput 
    及下列字体样式: plain 
    bold 
    italic 
    bolditalic 
    该 font.properties 文件定义用于平台的字体的特定信息。包括别名,例如: alias.timesroman=serifalias.helvetica=sansserif注意: 这是一个不好的例子,因为 timesroman 和 helvetica 是真实的字体名,而在 JDK1.2 中,我们不再使用这些名称作为虚拟字体的别名。它也包括字体描述。Win32 和 Solaris 平台间的描述是有区别的。必要时,我们的示例使用 serif 字体阐述如何指定和转换字体。然而,同一条目适用于其它字体类型。一般来说,字体属性文件中也有条目指定您想使用的字体。这些条目的格式如下:    <虚拟字体名>.<样式>.<索引号> = <平台字体名>,属性虚拟字体名是由 Java 运行时所识别的字体名。平台字体名是您平台上所用字体的实际名称。例如,Dialog 和 Serif 是 Java 字体名,而 Times 和 Helvetica 是 Win32 或 Solaris 平台上的本地字体名。索引号指定搜索匹配字形的顺序,0 具有最高的优先级。JDK1.2 中,虚拟字体名和样式的矩阵必须是完整的。例如,您必须有 serif,serif.bold serif.italic, serif.bolditalic. 需要注意 serif> 与 serif.plain 是等价的。本文件中所有的名字都是不区分大小写的。例如,在 JDK1.1 中 Solaris 的 font.properties 文件中,serif 条目如下所示:  serif.plain.0=-linotype-times-medium-r-normal--*-%d-*-*-p-*-iso8859-1
     serif.1=-urw-itc zapfdingbats-medium-r-normal--*-%d-*-*-p-*-sun-fontspecific
     serif.2=--symbol-medium-r-normal--*-%d-*-*-p-*-sun-fontspecific serif.italic.0=-linotype-times-medium-i-normal--*-%d-*-*-p-*-iso8859-1 serif.bold.0=-linotype-times-bold-r-normal--*-%d-*-*-p-*-iso8859-1 serif.bolditalic.0=-linotype-times-bold-i-normal--*-%d-*-*-p-*-iso8859-1如您所见,其中仅指定了“serif.plain”、“serif.italic”、“serif.bold”和“serif.bolditalic”的第一个条目。该字体每种样式的第二个和第三个条目都缺省为“serif.1”和“serif.2”(因为每种“serif”字体样式都使用两种相同的字体)。然而,在 JDK 1.2 font.properties 中,必须指定整个矩阵:  serif.0=-linotype-times-medium-r-normal--*-%d-*-*-p-*-iso8859-1
     serif.1=-urw-itc zapfdingbats-medium-r-normal--*-%d-*-*-p-*-sun-fontspecific
     serif.2=--symbol-medium-r-normal--*-%d-*-*-p-*-sun-fontspecific serif.italic.0=-linotype-times-medium-i-normal--*-%d-*-*-p-*-iso8859-1
     serif.italic.1=-urw-itc zapfdingbats-medium-r-normal--*-%d-*-*-p-*-sun-fontspecific
     serif.italic.2=--symbol-medium-r-normal--*-%d-*-*-p-*-sun-fontspecific serif.bold.0=-linotype-times-bold-r-normal--*-%d-*-*-p-*-iso8859-1
     serif.bold.1=-urw-itc zapfdingbats-medium-r-normal--*-%d-*-*-p-*-sun-fontspecific
     serif.bold.2=--symbol-medium-r-normal--*-%d-*-*-p-*-sun-fontspecific serif.bolditalic.0=-linotype-times-bold-i-normal--*-%d-*-*-p-*-iso8859-1
     serif.bolditalic.1=-urw-itc zapfdingbats-medium-r-normal--*-%d-*-*-p-*-sun-fontspecific
     serif.bolditalic.2=--symbol-medium-r-normal--*-%d-*-*-p-*-sun-fontspecific
    如前所述,尽管不需要指定 plain 样式的关键值 plain(serif.0 缺省使用 plain 风格),然而必须为这些样式指定 italic、bold 或 bolditalic。
    将亚洲字体添加到 Java 运行时
    在英文环境平台上使用亚洲字体的日文须执行两个步骤。 步骤 1: 安装字体
    首先,必须在系统中安装日文、韩文、中文或繁体中文字体。对于 Windows 平台用户,Microsoft 随 NT4.0 安装 CD 一起免费发放这些亚洲字体。您也可以从 Microsoft 主页下载这些字体。Solaris 用户必须与 SunSoft 联系以便为 Solaris 环境申请亚洲轮廓字体。 步骤 2: 复制字体
    在系统中安装了字体后,将您感兴趣的字体描述复制到 font.properties 中。添加一种亚洲字体最简单的办法是将 font.properties.<locale> 文件重命名为新的 font.properties 文件。locale 符号代表您所感兴趣的字体名。用 font.properties.<locale> 替换 font.properties 时不需要编辑。因为 font.properties.<locale> 是 font.properties 的一个超集。下面是指定不同字体属性文件的 locale 符号: 字体的 Locale 符号 
    字体名  font.properties 符号 
    日文  ja 
    韩文  ko 
    中文  zh 
    繁体中文  zh_TW 这样,要使用韩文字体,您可以复制或将 font.properties.ko 重命名为 font.properties。
    运行时使用多种字体
    运行时可以使用一种以上的亚洲字体。为此,您必须编辑 font.properties 文件。本节叙述使用多种字体时,您要对文件所做的编辑。 指定 Win32 平台上的字体
    在英文 Win32 平台上有三种缺省 serif 字体可供使用。这些字体是: Arial 
    WingDings 
    Symbol 
    此外,font.properties 文件中对这些 serif 字体的描述如下: 
    serif.0=Arial,ANSI_CHARSETserif.1=WingDings,SYMBOL_CHARSET,NEED_CONVERTEDserif.2=Symbol,SYMBOL_CHARSET,NEED_CONVERTED
    这三行一起指示本平台中可供使用的三种 serif 字体的索引。每行指示一种 serif 字体,随后是这种字体的索引。出现在单词 serif 之后的数字(0、1 和 2),如 serif.0,指示与 Unicode 或 Java 字符串编码的 codepoint 相匹配的字形的搜索顺序。这样,如果 serif.0 和 serif.1 都有相应于同一 Unicode codepoint 的字形,那么将使用 serif.0 的字形。第一个参数是 Win32 本地字体的字样名。每一行命名一种特定的字体。例如,用于 serif.0 的一行命名 Arial 字体,而用于 serif.2 的一行命名 Symbol 字体。第二个参数的形式为 *_CHARSET。在我们的示例中,它的形式为 ANSI_CHARSET 或 SYMBOL_CHARSET。这个参数指示与 Win32 字体相对应的字符集条目。(详细信息请参阅 Win32 API 文档。) 如果出现第三个参数,则为 NEED_CONVERTED。这个参数指示相应的平台字体不能使用 Unicode 访问。这个参数出现时,试图使用该字体的字形前,Java 运行时需要将 Unicode 字符串转换为这种字体的索引。具有这个 NEED_CONVERTED 参数的字体必须有相应的字体字符集条目,指示用于转换 Unicode 字符串的字符集转换器。在我们的示例中,serif.1 和 serif.2 都有 NEED_CONVERTED 参数。两者在 font.properties 文件中都有字体字符集条目,如下所示: 
    fontcharset.serif.1=sun.awt.windows.CharToByteWingDingsfontcharset.serif.2=sun.awt.CharToByteSymbol
    用于 serif.1 的字体字符集条目指示,如果要绘制 WingDings 字形,应该使用 sun.awt.windows.CharToByteWingDings 转换器转换 Unicode 字符串。(请记住 font.properties 文件已经为 serif.1 建立了字体 WingDings。) 字符集转换器的规范随后在字符集转换器一节中叙述。注意:在 JDK1.2 的当前实现中未使用 NEED_CONVERTED。
    JDK1.2 中的字体文件名 
    为缩短初始化时间,现在有一种方法指定逻辑字体名和物理字体名间的映射。例如: filename.Arial=ARIAL.TTF
    filename.Arial_Bold=ARIALBD.TTF
    filename.Arial_Italic=ARIALI.TTF
    filename.Arial_Bold_Italic=ARIALBI.TTF第一个条目显示字体名 Arial 和物理字体名 ARIAL.TTF 之间的映射。下一个条目显示 Arial 所使用的不同样式间的映射。由于不需要打开每个字体文件去查找特定名称的字体,所以缩短了初始化时间。 Win32 字体文件
    当前的 Win32 JDK 构建提供下列字体属性文件: 
    ./lib/font.properties./lib/font.properties.ar./lib/font.properties.iw./lib/font.properties.ja./lib/font.properties.ko./lib/font.properties.ru./lib/font.properties.th./lib/font.properties.zh./lib/font.properties.zh.NT4.0./lib/font.properties.zh_TW
    如果您需要其它字体,则必须创建自己的字体属性文件。 指定 Solaris 平台的字体
    在 JDK 1.2 中,font.properties 文件中指定的字体应引用可缩放字体。然而这并不是说在需要某一字体大小时总是使用可缩放字体。X11 中工作的方式是给定 xlfd 字符串,例如  -adobe-courier-bold-o-normal--10-100-75-75-m-60-iso8859-1Xserver 将首先查找与 xlfd 字符串中的条目相匹配的可缩放字体(用于字体铸型、字体系列、样式、倾斜、编码等)。然而,它接下来将为指定的像素/点大小(本例中为 10 pt)继续查找与这个 xlfd 字符串完全匹配的位图字体。如果找到一个,那么 X11 将返回从使用的位图字体文件直接读取的位图,而不是可缩放字体文件中的数据生成的位图。例如,英文 Solaris (2.6+)中的 serif 字体包含下列字体: serif.0=-monotype-times new roman-regular-r---*-%d-*-*-p-*-iso8859-1
    serif.1=-urw-itc zapfdingbats-medium-r-normal--*-%d-*-*-p-*-sun-fontspecific
    serif.2=-*-symbol-medium-r-normal-*-*-%d-*-*-p-*-adobe-symbolserif.italic.0=-monotype-times new roman-regular-i---*-%d-*-*-p-*-iso8859-1
    serif.italic.1=-urw-itc zapfdingbats-medium-r-normal--*-%d-*-*-p-*-sun-fontspecific
    serif.italic.2=-*-symbol-medium-r-normal-*-*-%d-*-*-p-*-adobe-symbolserif.bold.0=-monotype-times new roman-bold-r---*-%d-*-*-p-*-iso8859-1
    serif.bold.1=-urw-itc zapfdingbats-medium-r-normal--*-%d-*-*-p-*-sun-fontspecific
    serif.bold.2=-*-symbol-medium-r-normal-*-*-%d-*-*-p-*-adobe-symbolserif.bolditalic.0=-monotype-times new roman-bold-i---*-%d-*-*-p-*-iso8859-1
    serif.bolditalic.1=-urw-itc zapfdingbats-medium-r-normal--*-%d-*-*-p-*-sun-fontspecific
    serif.bolditalic.2=-*-symbol-medium-r-normal-*-*-%d-*-*-p-*-adobe-symbolSolaris font.properties 文件的这些行指明具有不同样式的 serif 字体的索引。例如,字样名为 serif 并且样式为 plain 的字体由 serif.0、serif.1 和 serif.2 组成。此外,这些行指明有斜体样式的 serif 字体由 serif.italic.0、serif.italic.1 和 serif.italic.2 组成。当前,Solaris (X11) 字体的索引不是 Unicode 索引。由于它不是 Unicode,所以字体总是需要转换。每个条目都有其相应的字体字符集条目指明应该怎样进行转换,如下所示: 
    fontcharset.serif.0=sun.io.CharToByte8859_1fontcharset.serif.1=sun.awt.motif.CharToByteX11Dingbatsfontcharset.serif.2=sun.awt.CharToByteSymbol
    例如,下面一行: 
    fontcharset.serif.0=sun.io.CharToByte8859_1
    指明所有的 serif.0 字体,无论类型是 plain (serif.plain.0),bold (serif.bold.0),italics (serif.italic.0),还是 bold 和 italics (serif.bolditalic.0),都将使用 sun.io.CharToByte8859_1 转换器进行转换。
    测试并校正 font.properties 文件中的 xlfd 字符串
    无论如何应指定可缩放字体的原因是因为 Java2D 只能对可缩放字体执行一些特定的操作,例如生成轮廓。现在 Java2D 代码可识别可缩放字体,例如 TrueType、Type1 或 F3。因此,在 font.properties 文件中输入 xlfd 字符串时,应查找系统上安装的这些字体并指定它们。通常 TrueType 字体的文件扩展名为“ttf”。Type 1 字体的文件扩展名为“pfa”或“pfb”。F3 字体的文件扩展名为“f3b”。对于Solaris 2.6 的“C”locale,在所有包都安装后,您可以在以下位置找到这些格式的字体:  Type1:    /usr/openwin/lib/X11/fonts/Type1
       TrueType: /usr/openwin/lib/X11/fonts/TrueType
       F3:       /usr/openwin/lib/X11/fonts/F3在其它的 locale 中,字体将安装在类似于 /usr/openwin/lib/locale/ 的目录中。例如,在 JA locale 中,字体将安装在 /usr/openwin/lib/locale/ja 目录下:  TrueType: /usr/openwin/lib/locale/ja/X11/fonts/TT
    F3:       /usr/openwin/lib/locale/ja/X11/fonts/F3随 locale 不同,字体文件的位置也可能不同(也就是说不一定总是在 /usr/openwin/lib/locale/<locale>/X11/fonts 中),但通常在 /usr/openwin/lib/locale/<locale> 目录的某处。一旦定位了可缩放字体的位置,请在存放可缩放字体文件的目录中查看“fonts.dir”文件。这个文件列出了该目录中字体的所有有效的 xlfd 字符串。例如,在位于 /usr/openwin/lib/locale/ja/X11/fonts/TT 目录中的“fonts.dir”文件中,有这样一个条目:  HG-MinchoL.ttf -ricoh-hg mincho l-medium-r-normal--0-0-0-0-m-0-jisx0208.1983-0在 xlfd 字符串中,您将见到 4 个连续的零值。它们指明像素大小、点大小和分辨率的 x、y 值。当将这个 xlfd 字符串复制为 font.properties 条目时,记住要用“%d”替换点大小(第二个“0”),当使用该字体时,它将由特定的点大小代替。同样,用“*”(星号)替换另一个“0”,说明任何值都可匹配这个域。举个例子,如果上面的字体被用作 font.properties 文件中指定的“serif”字体的条目,那么它将类似:  serif.1=-ricoh-hg mincho l-medium-r-normal--*-%d-*-*-m-*-jisx0208.1983-0当实际使用字体时,使用 Java “字体”对象创建时指定的点大小(用这个值替换“%d”),并且用这个点大小初始化字体以备后用。校验您所录入 font.properties 文件的 xlfd 字符串正确性的一种方法是用“xfd”显示那种字体。“xfd”是位于 /usr/openwin/bin 中显示一种字体的所有字符的 X11 应用程序。要运行此应用程序,请指定字体(以 xlfd 字符串的形式)。要验证 font.properties 文件中的 xlfd 条目,请用有效点大小如 120(12 pt)、140(14 pt)、160(16 pt)等替换“%d”,(xlfd 点大小是“像素大小”的十倍,而像素大小一般被当作字体点大小)。所以,在上面的例子中,“serif.1”条目用于日文 font.properties 文件,要验证这个 xlfd 字符串是否正确,请运行:  % xfd -fn "-ricoh-hg mincho l-medium-r-normal--*-140-*-*-m-*-jisx0208.1983-0"如果 xlfd 字符串是不正确的,“xfd”将不显示窗口,而且会立刻退出,并显示如下的错误信息:  Warning: Cannot convert string "<xlfd string>" to type FontStruct
    xfd:  no font to display如果 xlfd 字符串是正确的,将显示一个窗口,窗口中是字体中指定的所有字符。如果超过 256 个字符,则只显示前面 256 个字符,但用户可以通过点击应用程序中显示的“NextPage”按钮浏览所有条目。
    可缩放字体说明
    记住 font.properties 文件中指定的字体必须是上面提到过的格式中的一种(TrueType、Type1 或 F3)。如果系统中安装的字体都不是这些格式,那么 Java2D 不会找到任何有效字体,所以诸如 drawString ("some Text") 的操作将无法工作。当前 JDK1.2 中还有 bug,即无法旋转(或缩放或剪切)F3 字体。所以如果存在 TrueType 就应尽量选择 TrueType 字体,而不是 F3 字体。X 服务器对于 Type1 字体也存在 bug(2.5.1 比 2.6 存在更多问题),所以也应尽量避免使用 Type1 字体。 Solaris 字体文件
    当前 Solaris JDK 提供下列字体属性文件: 
    ./lib/font.properties./lib/font.properties.5.6./lib/font.properties.5.7./lib/font.properties.cs./lib/font.properties.el./lib/font.properties.hu./lib/font.properties.ja./lib/font.properties.ja.5.6./lib/font.properties.ko./lib/font.properties.ko.5.6./lib/font.properties.ko.5.7./lib/font.properties.lt./lib/font.properties.lv./lib/font.properties.pl./lib/font.properties.ru./lib/font.properties.tr./lib/font.properties.zh_EUC_CN./lib/font.properties.zh_EUC_CN.5.6./lib/font.properties.zh_EUC_CN.5.7./lib/font.properties.zh_TW_Big5./lib/font.properties.zh_EUC_TW./lib/psfont.properties.ja
    如果您还需要其它字体,则必须创建自己的字体属性文件。 排除范围
    如前所述,虚拟字体名后面的数字指明查找所需字形时搜索实际字体的顺序。有时组成虚拟字体的物理字体有字形上的重叠范围。可以添加排除范围以限制在物理字体中搜索字形的范围。例如,下面是 Solaris font.properties.ja 文件中对一种等宽字体的描述: monospaced.plain.0=-morisawa-gothic medium bbb-medium-r-normal-sans-*-%d-*-*-m-*-jisx0201.1976-0
    monospaced.plain.1=-morisawa-gothic medium bbb-medium-r-normal-sans-*-%d-*-*-m-*-jisx0208.1983-0
    monospaced.plain.2=-morisawa-gothic medium bbb-medium-r-normal-sans-*-%d-*-*-m-*-jisx0201.1976-0
    monospaced.plain.3=-urw-itc zapfdingbats-medium-r-normal--*-%d-*-*-p-*-sun-fontspecific
    monospaced.plain.4=--symbol-medium-r-normal--*-%d-*-*-p-*-sun-fontspecific相应的排除范围如下: exclusion.monospaced.0=0080-ffff这样就从虚拟字体中的第一种字体中排除了 Unicode 0x0080 到 Unicode 0xffff 范围内的字形,因此将搜索后面的字体(monospaced.plain.1、monospaced.plain.2、monospaced.plain.3、monospaced.plain.4)以查找这些字形。
    字符集转换器
    该 charset 转换器将 Unicode 或 Java 字符串编码转换为字体索引。字体绘制时,JDK 1.1 运行时使用 charset 转换器,它是 sun.io.CharToByteConverter 的一个子类。在 JDK 1.1 运行时中添加自己的字体时,需要创建一个 charset 转换器并在 font.properties 文件中指定它。下面的例子描述如何将您自己的字体添加到 Java serif 字体中。在这个例子中,字体包含 256 种字形,从 0 至 0xff 进行索引。您的字体的字形对应于 Unicode 0xe000 - 0xe0ff。该示例分成两步。第一步,创建您自己的 fontcharset 转换器类。第二步,在 font.properties file 文件中指定您自己的字体名及转换器类名。 步骤 1. 创建字体字符集转换器
    这是创建 fontcharset 转换器的 Java 代码。package mypkg.converter;import sun.io.CharToByte8859_1;
    import sun.io.CharToByteConverter;
    import sun.io.ConversionBufferFullException;public class CharToByteMyFont extends sun.io.CharToByte8859_1 {   /*
        * 此方法指示该字体的涵盖范围。
        */
       public boolean canConvert(char ch) {
          if (ch >= 0xe000 && ch 
    <= 0xe0ff) { return true; } return true; } /* * This method converts the unicode to this font index. */ public int convert(char[] input, int inStart, int inEnd, byte[] output, int outStart, int outEnd) throws ConversionBufferFullException { int outIndex="outStart;" for (int i="inStart;" i < inEnd; i++) { char ch="input[i];" if (ch>= 0xe000 && ch 
    <= 0xe0ff) { if (outIndex>= outEnd)
                throw new ConversionBufferFullException();
                output[outIndex++] = (byte)(ch - 0xe000);
             }
          }
          return outIndex - outStart;
       }   /*
        * 此方法指示该字体的字符集名。
        */
       public String toString() {
          return "MyFont";
       }
    }
    步骤 2. 将字体和转换器添加到属性文件中
    您必须首先在 font.properties 文件中设置字体名,这通过为字体添加索引条目实现。例如,对于 serif 字体,在文件中添加一行指定 serif 字体,随后是下一个顺序索引数。Java 运行时要求任意字体的索引号是连续的。因而,要在前面例子的 font.properties 文件中添加 serif 字体,需要插入下面的行: serif.3=< your own font name >索引号必须是该属性文件中下一个最大的索引号。在示例文件中,我们已经使用了 serif.0、serif.1 和 serif.2。因此,新的 serif 字体必须是 serif.3。如果我们使用了不连续的号码,例如 serif.5,Java 运行时将不使用该条目。接下来,您必须为这种字体定义转换器。这需要新字体的 fontcharset 条目,在本例中是 serif.3。随后的一行是使用 Java 代码示例中所创建转换器的 fontcharset 条目: fontcharset.serif.3=mypkg.converter.CharToByteMyfont同样必须保证新转换器对 Java 运行时可见。为确保 Java 运行时能见到转换器,java 应用程序的 classpath 必须包括转换器的类路径。在我们的示例中,必须确保类 mypkg.converter.CharToByteMyfont 对 Java 运行时可见。实现此目的最简单方法是将该类放在 $JDK_HOME/classes/myown/package 目录下。
    调试 font.properties 文件
    调试自定义 font.properties 文件的最佳方法是将其与现存文件进行比较。首先,您需要找到正确的 font.properties 文件(根据 OS 版本、地区、编码和语言)。然后,如果检查您自己的文件与标准文件的区别,您会发现唯一的区别是您要替换的字体(可能还有与此新字体相关的其它域,如排除范围)。接下来请运行某个测试(如 demo/applets/SymbolTest 中的 SymbolTest),以确定是否显示了标准逻辑字体。