收藏 分享(赏)

Java5&6中的字体自定义设置与美化.doc

上传人:11xg27ws 文档编号:8729198 上传时间:2019-07-09 格式:DOC 页数:8 大小:36.50KB
下载 相关 举报
Java5&6中的字体自定义设置与美化.doc_第1页
第1页 / 共8页
Java5&6中的字体自定义设置与美化.doc_第2页
第2页 / 共8页
Java5&6中的字体自定义设置与美化.doc_第3页
第3页 / 共8页
Java5&6中的字体自定义设置与美化.doc_第4页
第4页 / 共8页
Java5&6中的字体自定义设置与美化.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、Java5&6 中的字体自定义设置与美化Java5/6 中的字体自定义设置与美化(Linux/Windows)默认情况下,Java 应用程序中的中文字体和英文字体是分开使用的,这样导致不能同时使用某个英文字体和某个中文字体来显示同个程序中包含中文和英文的文字。例如,在 Netbeans 中不能使用Courser 10 Pitch 字体(Windows 下为 Courser New)和某个中文字体(比如宋体或微软雅黑)来显示一个 java 源代码,如果选择Courser 字体,那么源代码中的中文就无法显示,如果选择宋体或雅黑,那么英文字体则是采用默认映射的某个字体。一、字体配置文件(Font C

2、onfiguration Files)的简介首先得弄清楚的是 Java 字体配置文件的加载方案。为了在一个操作系统中找到应用程序字体配置文件,必须了解以下信息:* JavaHome - JRE 的目录,就像系统属性给出的“java.home“。* OS - 标识一个操作系统的一个字符串:o 对于 Windows,“98“, “2000“, “Me“, “XP“, “2003“。o 对于 Solaris,空。o 对于 Linux, “Sun“, “RedHat“, “Turbo“, “SuSE“。* Version - 一个标识操作系统版本的字符串。Java 运行时会使用它找到的以下文件中的第一

3、个(有人说是按照这个顺序加载,但官方是说这些文件中的第一个):JavaHome/lib/fontconfig.OS.Version.propertiesJavaHome/lib/fontconfig.OS.Version.bfcJavaHome/lib/fontconfig.OS.propertiesJavaHome/lib/fontconfig.OS.bfcJavaHome/lib/fontconfig.Version.propertiesJavaHome/lib/fontconfig.Version.bfcJavaHome/lib/fontconfig.propertiesJavaHome

4、/lib/fontconfig.bfc其中,以.properties 为后缀的文件是文本格式的文件,其他为二进制格式的文件。需要修改的,就是.properties 后缀的文本文件,即字体配置文件。这个文件分为若干段,并在每段开始时用#标明:* 版本属性# Version用来标识这个字体配置文件格式的版本。这里指定为 1version=1* 组件字体映射# Component Font Mappings组件字体映射属性描述了根据一个给出的某个样式(style)的逻辑字体(logical font),决定用来哪个物理字体(physical font)的一个字符子集(character subset

5、)来显示字符.,简单地说,就是根据以下形式来映射字体(这里指逻辑字体):所有字体.字符子集名字=物理字体名字allfonts.CharacterSubsetNamePlatformFontName逻辑字体名字.样式名字.字符子集名字=物理字体名字或者:LogicalFontName.StyleName.CharacterSubsetNamePlatformFontName这里的物理字体名字在 Linux/Solaris 下和在 Windows 下表示方式不同,字符子集名字也有些差别。例如,Linux/Solaris 下的一个映射:monospaced.bold.latin-1=-bitstre

6、am-courier 10 pitch-bold-r-normal-*-%d-*-*-m-*-iso8859-1monospaced.bold.chinese-gb18030=-microsoft-microsoft yahei-medium-r-normal-*-%d-*-*-p-*-gb18030.2000-0Windows 下的一个映射:monospaced.bold.alphabetic=Courier New Boldmonospaced.bold.chinese-ms950=PMingLiU其中,monospaced 为逻辑字体名字,逻辑自己名字只能是五个逻辑字体名字中的一个:se

7、rif,sansserif,monospaced, dialog,和dialoginput。bold 为粗体的字体样式,字体样式只能是四个样式中的一个:plain(正常) ,bold(粗体) , italic(斜体) ,和bolditalic(粗体+斜体) 。latin-1 和 alphabetic 都是为字母的字符子集名字,前者用于 Linux 下,后者用于 Windows 下。等号右边是物理字体名字,它在 Linux/Solaris 和 Windows 的表示有很大的差别,在 Linux/Solaris 下为更专业的表示方法,而在 Windows 下就是所见即所得的表示方法(可以为中文,但

8、必须用 unicode 的形式来表示,这个后面会提到) 。组件字体映射属性就是需要我们修改的一个部分。* 搜索顺序# Search SequencesJava 运行时通过顺序属性来决定五种逻辑字体的搜索顺序。然而,一个字体配置文件可能指定由编码(encoding),语言(language)和国家 (country)组合的特殊属性,运行时将会通过查找来决定每个逻辑字体的搜索顺序属性。这也是需要修改的一个部分。* 字体文件名字# Font File Names字体文件名字属性提供了字体配置文件所使用的包含了物理字体的文件名字。在 Windows 下所有物理字体的名字是必须的,在Solaris 和

9、Linux 下所有物理字体的名字是推荐的。 (两种操作系统中的字体文件名字表示有很大的差别。 )还有其他一些属性,具体的说明请参见 Sun 的官方文档,它们是不需要我们修改的,其中有的甚至在字体配置文件中不需要指定:# Exclusion Ranges# Proportional Fonts# Appended Font Path# Motif Component Font Mappings# AWT X11 Font Path二、修改与美化通过上面对字体配置文件的简单了解,现在我们可以进行自定义修改与美化了。首先,你要用到的字体可能在字体配置文件中没有指定,我们必须自己指定要用到的物理字体(

10、physical font),并映射为不同操作系统平台下的表示(PlatformFontName)。例如,我们想选择微软雅黑字体(msyh.ttf)和 Courser 字体,这里假定你已经在操作系统上安装了这些字体。Linux(Ubuntu7.04)下,我们在/etc/java-6-sun/fontconfig.properties(Ubuntu7.04 通过 apt-get 安装的jdk,手动安装 jdk 的话,字体配置文件在 Javahome/jre/lib 目录下,把 fontconfig.properties.src 文件改名为fontconfig.properties)文件的# Fo

11、nt File Names 段添加:filename.-microsoft-microsoft_yahei-medium-r-normal-*-%d-*-*-p-*-gb18030.2000-0=/usr/share/fonts/yahei/msyh.ttf说明:filename 为固定的,后面跟一个点(.) ,紧接着是微软雅黑字体的物理名字(不包括引号) “-microsoft- microsoft_yahei-medium-r-normal-*-%d-*-*-p-*-gb18030.2000-0”,这个名字在 fonts.dir 文件中是这样表示的: “-microsoft-microso

12、ft yahei-medium-r-normal-0-0-0-0-p-0-gb18030.2000-0”,差别就是需要用_替换名字中的空格,并且把- -0-0-0-0-p-0-改为-*-%d-*-*-p-*-,其中%d 用来表示字体大小,运行时会自动填充这个值。medium-r-normal 的 r 表示正常样式的字体(msyh.ttf 只包含这个样式)。等号右边是 msyh.ttf 文件的绝对路径。接着,我们就可以在字体配置文件中使用这个名字了。在# Component Font Mappings 段中,将包含 chinese 的中文字体都改为雅黑的名字,如下:allfonts.chines

13、e-gb18030=-microsoft-microsoft yahei-medium-r-normal-*-%d-*-*-p-*-gb18030.2000-0allfonts.chinese-gb18030.motif=-microsoft-microsoft yahei-medium-r-normal-*-%d-*-*-p-*-gb18030.2000-0allfonts.chinese-big5=-microsoft-microsoft yahei-medium-r-normal-*-%d-*-*-p-*-gb18030.2000-0allfonts.chinese-big5.motif

14、=-microsoft-microsoft yahei-medium-r-normal-*-%d-*-*-p-*-gb18030.2000-0并且将程序中用到的逻辑字体的中文字符子集映射为雅黑,如下(这里使用 monospaced):monospaced.plain.chinese-gb18030=-microsoft-microsoft yahei-medium-r-normal-*-%d-*-*-p-*-gb18030.2000-0monospaced.plain.chinese-gb18030.motif=-microsoft-microsoft yahei-medium-r-norma

15、l-*-%d-*-*-p-*-gb18030.2000-0monospaced.bold.chinese-gb18030=-microsoft-microsoft yahei-medium-r-normal-*-%d-*-*-p-*-gb18030.2000-0monospaced.bold.chinese-gb18030.motif=-microsoft-microsoft yahei-medium-r-normal-*-%d-*-*-p-*-gb18030.2000-0monospaced.italic.chinese-gb18030=-microsoft-microsoft yahei-

16、medium-r-normal-*-%d-*-*-p-*-gb18030.2000-0monospaced.italic.chinese-gb18030.motif=-microsoft-microsoft yahei-medium-r-normal-*-%d-*-*-p-*-gb18030.2000-0monospaced.bolditalic.chinese-gb18030=-microsoft-microsoft yahei-medium-r-normal-*-%d-*-*-p-*-gb18030.2000-0monospaced.bolditalic.chinese-gb18030.m

17、otif=-microsoft-microsoft yahei-medium-r-normal-*-%d-*-*-p-*-gb18030.2000-0至此,添加给 Java 应用程序添加雅黑字体已经完成,打开Netbeans 看看,中文版的 Netbeans 的启动界面的中文,以及 IDE里面的中文字体全部变成了雅黑。但是,英文字体还不是想要的,默认是 Monospaced 逻辑字体,它的英文字体映射到一个不知道叫什么的字体上了。尤其在源代码中,如果选择 Courser 10 Pitch 字体,代码中的中文将无法显示,用默认 Monospaced 字体来显示英文又觉得不好看。下面,我们将 Mo

18、nospaced 逻辑字体的英文映射成Courser 10 Pitch。Ubuntu 中,Courser 10 Pitch 字体的物理文件位置在/usr/share/fonts/X11/Type1/目录下的 c0419bt_.pfb(正常) 、 c0582bt_.pfb(粗体) 、c0583bt_.pfb(斜体) 、c0611bt_.pfb(粗体+斜体) 。我们在# Font File Names 段中添加这几个文件的映射:filename.-bitstream-courier_10_pitch-medium-r-normal-*-%d-*-*-m-*-iso8859-1=/usr/share

19、/fonts/X11/Type1/c0419bt_.pfbfilename.-bitstream-courier_10_pitch-medium-i-normal-*-%d-*-*-m-*-iso8859-1=/usr/share/fonts/X11/Type1/c0582bt_.pfbfilename.-bitstream-courier_10_pitch-bold-r-normal-*-%d-*-*-m-*-iso8859-1=/usr/share/fonts/X11/Type1/c0583bt_.pfbfilename.-bitstream-courier_10_pitch-bold-i

20、-normal-*-%d-*-*-m-*-iso8859-1=/usr/share/fonts/X11/Type1/c0611bt_.pfb说明一下,medium-r 为正常样式,medium-i 为斜体样式,bold-r为粗体样式,bold-i 为粗体+斜体样式。然后在# Component Font Mappings 段中,将 monospaced4 种样式字体的 latin-1 字符集改为:monospaced.plain.latin-1=-bitstream-courier 10 pitch-medium-r-normal-*-%d-*-*-m-*-iso8859-1monospace

21、d.plain.latin-1.motif=-bitstream-courier 10 pitch-medium-r-normal-*-%d-*-*-m-*-iso8859-1monospaced.bold.latin-1=-bitstream-courier 10 pitch-bold-r-normal-*-%d-*-*-m-*-iso8859-1monospaced.bold.latin-1.motif=-bitstream-courier 10 pitch-bold-r-normal-*-%d-*-*-m-*-iso8859-1monospaced.italic.latin-1=-bit

22、stream-courier 10 pitch-medium-i-normal-*-%d-*-*-m-*-iso8859-1monospaced.italic.latin-1.motif=-bitstream-courier 10 pitch-medium-i-normal-*-%d-*-*-m-*-iso8859-1monospaced.bolditalic.latin-1=-bitstream-courier 10 pitch-bold-i-normal-*-%d-*-*-m-*-iso8859-1monospaced.bolditalic.latin-1.motif=-bitstream

23、-courier 10 pitch-bold-i-normal-*-%d-*-*-m-*-iso8859-1好了,保存文件,重新打开 Netbeans,现在你可以将源代码的字体设置为 Monospaced,代码中的英文字体就是 Courier 10 Pitch,而中文为雅黑。 (Netbeans 字体设置在“工具“-“选项“-“字体和颜色“-“语法“下,默认情况下, Java 还是会采用其他的英文字体,可以全部手动设为 Monospaced)WindowsXP 下会简单一点。我们不必自己重新写一个字体配置文件,将 Javahomejrelib fontconfig.properties.src

24、 文件(Windows)改名为 fontconfig.properties,打开。假设雅黑字体已经安装在了 C:WindowsFonts文件夹中,我们在fontconfig.properties 文件的# Font File Names 段中添加雅黑字体的映射:filename.u5FAEu8F6Fu96C5u9ED1=msyh.ttffilename.u5FAEu8F6Fu96C5u9ED1_Bold=msyhbd.ttf然后在# Component Font Mappings 段的 allfonts 的中文子集的字体改为雅黑,如下:allfonts.chinese-ms936=u5FAEu

25、8F6Fu96C5u9ED1allfonts.chinese-gb18030=u5FAEu8F6Fu96C5u9ED1其中,ms936 就是 GBK 字符集,ms950 实际上就是 Big5 字符集,繁体的,也可以改用雅黑。你可以看到,Windows 底下五种逻辑字体默认的简体中文字体的映射都采用 allfonts 的设置,所以其他地方都可以不用设置了。而对于英文,monospaced 默认就是映射为 Courier New 字体,但为什么在 Java 程序里(比如 Netbeans)确不能显示呢?找到sequence.monospaced.GBK=sequence.monospaced.GBK=chinese-ms936,alphabetic,dingbats,symbol可以看出对于中文字体的搜索顺序是先搜 chinese-ms936,而chinese-ms936 是用 allfonts 的雅黑来显示英文,所以不好看,因此你只要简单将 chinese-ms936 和 alphabetic 这两个交换一下变成:sequence.monospaced.GBK=alphabetic,chinese-ms936,dingbats,symbol保存之后,重启你的 Netbeans,这时编辑器里的英文字体就都编程Courier New 了,包括 Output 窗口的字体。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报