Java5/6中的字体自定义设置与美化(Linux/Windows)
默认情况下,Java应用程序中的中文字体和英文字体是分开使用的,这样导致不能同时使用某个英文字体和某个中文字体来显示同个程序中包含中文和英文的文字。例如,在Netbeans中不能使用Courser 10 Pitch字体(Windows下为Courser New)和某个中文字体(比如宋体或微软雅黑)来显示一个java源代码,如果选择Courser字体,那么源代码中的中文就无法显示,如果选择宋体或雅黑,那么英文字体则是采用默认映射的某个字体。
网络上给出了许多方法,但都只是给出某些简单的方法来解决java中文乱码问题,没讲清楚基本原理。
本文给出了一个完整的字体设置方法,并且给出Ubuntu7.04和WindowsXP上测试通过的 字体配置文件以供参考。
本文有点罗嗦,不过我想如果看完Sun官方的字体配置文件的文档,大家应该对Java字体配置会有个比较全面的了解。
字体配置文件的Sun官方文档地址: http://java.sun.com/j2se/1.5.0/docs/guide/intl/fontconfig.html
其他参考资料:
http://blog.csdn.net/oldjavaman/archive/2005/05/27/382110.aspx
http://community.csdn.net/Expert/TopicView3.asp?id=5663604
一、字体配置文件(Font Configuration Files)的简介
首先得弄清楚的是Java字体配置文件的加载方案。
为了在一个操作系统中找到应用程序字体配置文件,必须了解以下信息:
* JavaHome - JRE的目录,就像系统属性给出的"java.home"。
* OS - 标识一个操作系统的一个字符串:
o 对于 Windows,"98", "2000", "Me", "XP", "2003"。
o 对于 Solaris,空。
o 对于 Linux, "Sun", "RedHat", "Turbo", "SuSE"。
* Version - 一个标识操作系统版本的字符串。
Java运行时会使用它找到的以下文件中的第一个(有人说是按照这个顺序加载,但官方是说这些文件中的第一个):
JavaHome/lib/fontconfig.OS.Version.properties
JavaHome/lib/fontconfig.OS.Version.bfc
JavaHome/lib/fontconfig.OS.properties
JavaHome/lib/fontconfig.OS.bfc
JavaHome/lib/fontconfig.Version.properties
JavaHome/lib/fontconfig.Version.bfc
JavaHome/lib/fontconfig.properties
JavaHome/lib/fontconfig.bfc
其中,以.properties为后缀的文件是文本格式的文件,其他为二进制格式的文件。需要修改的,就是.properties后缀的文本文件,即字体配置文件。这个文件分为若干段,并在每段开始时用#标明:
* 版本属性
# Version
默认情况下,Java应用程序中的中文字体和英文字体是分开使用的,这样导致不能同时使用某个英文字体和某个中文字体来显示同个程序中包含中文和英文的文字。例如,在Netbeans中不能使用Courser 10 Pitch字体(Windows下为Courser New)和某个中文字体(比如宋体或微软雅黑)来显示一个java源代码,如果选择Courser字体,那么源代码中的中文就无法显示,如果选择宋体或雅黑,那么英文字体则是采用默认映射的某个字体。
网络上给出了许多方法,但都只是给出某些简单的方法来解决java中文乱码问题,没讲清楚基本原理。
本文给出了一个完整的字体设置方法,并且给出Ubuntu7.04和WindowsXP上测试通过的 字体配置文件以供参考。
本文有点罗嗦,不过我想如果看完Sun官方的字体配置文件的文档,大家应该对Java字体配置会有个比较全面的了解。
字体配置文件的Sun官方文档地址: http://java.sun.com/j2se/1.5.0/docs/guide/intl/fontconfig.html
其他参考资料:
http://blog.csdn.net/oldjavaman/archive/2005/05/27/382110.aspx
http://community.csdn.net/Expert/TopicView3.asp?id=5663604
一、字体配置文件(Font Configuration Files)的简介
首先得弄清楚的是Java字体配置文件的加载方案。
为了在一个操作系统中找到应用程序字体配置文件,必须了解以下信息:
* JavaHome - JRE的目录,就像系统属性给出的"java.home"。
* OS - 标识一个操作系统的一个字符串:
o 对于 Windows,"98", "2000", "Me", "XP", "2003"。
o 对于 Solaris,空。
o 对于 Linux, "Sun", "RedHat", "Turbo", "SuSE"。
* Version - 一个标识操作系统版本的字符串。
Java运行时会使用它找到的以下文件中的第一个(有人说是按照这个顺序加载,但官方是说这些文件中的第一个):
JavaHome/lib/fontconfig.OS.Version.properties
JavaHome/lib/fontconfig.OS.Version.bfc
JavaHome/lib/fontconfig.OS.properties
JavaHome/lib/fontconfig.OS.bfc
JavaHome/lib/fontconfig.Version.properties
JavaHome/lib/fontconfig.Version.bfc
JavaHome/lib/fontconfig.properties
JavaHome/lib/fontconfig.bfc
其中,以.properties为后缀的文件是文本格式的文件,其他为二进制格式的文件。需要修改的,就是.properties后缀的文本文件,即字体配置文件。这个文件分为若干段,并在每段开始时用#标明:
* 版本属性
# Version