今天下了NetBeans 6.0, SUN公司出品的IDE,以前一直在用Eclipse,所以对新接触的IDE非常好奇。但问题不到三分钟就出来了:在选择字体时,选择英文字体之后,中文就无法正常显示了,本应是汉字的地方显示为一个个的方框,令我感到绝望。追求美观的我怎么可能将就着使用难看的默认字体!
开始百度!!从傍晚11点折腾到现在,晚上3点,终于大功告成。
突破口是JDK中的fontconfig.properties这个文件。存放在jdk/jre/lib中,JAVA的字体显示方式是自成体系的,一般来说只显示字体能显示的字符,于是当英文字体遇到中文字符时,显示的只是方框了。还好从JDK1.5之后JAVA提供了上面提到的文件来配置自定义混排字体,从而可以实现一种字体显示多种文字。下面是具体配置:
dialoginput.plain.alphabetic=Verdana
dialoginput.plain.chinese-ms950=MingLiU
dialoginput.plain.hebrew=David
dialoginput.plain.japanese=MS Gothic
dialoginput.plain.korean=Gulim
dialoginput.bold.alphabetic=Verdana Bold
dialoginput.bold.chinese-ms950=PMingLiU
dialoginput.bold.hebrew=David Bold
dialoginput.bold.japanese=MS Gothic
dialoginput.bold.korean=Gulim
dialoginput.italic.alphabetic=Verdana Italic
dialoginput.italic.chinese-ms950=PMingLiU
dialoginput.italic.hebrew=David
dialoginput.italic.japanese=MS Gothic
dialoginput.italic.korean=Gulim
dialoginput.bolditalic.alphabetic=Verdana Bold Italic
dialoginput.bolditalic.chinese-ms950=PMingLiU
dialoginput.bolditalic.hebrew=David Bold
dialoginput.bolditalic.japanese=MS Gothic
dialoginput.bolditalic.korean=Gulim
filename.Verdana=verdana.TTF
这里,自定义的dialoginput字体在遇到英文时使用Verdana字体,在遇到中文时使用MingLiu字体,后面还有日韩等字体。
配置之后的个人喜爱的字体显示图片:
在最后完成之前偶走了相当长的弯路,害得今天要睡到至少10点才能起了...
这里是我修改后的fontconfig.properties文件
其中dialoginput字体为个性化的字体, 与上图显示的字体对应.
#
# Copyright 2003 Sun Microsystems , Inc. All rights reserved.
#
# Version
version = 1
# Component Font Mappings
allfonts.chinese-ms936 = SimSun
allfonts.chinese-gb18030 = SimSun- 18030
allfonts.chinese-hkscs = MingLiU_HKSCS
allfonts.devanagari = Mangal
allfonts.dingbats = Wingdings
allfonts.lucida = Lucida Sans Regular
allfonts.symbol = Symbol
allfonts.thai = Lucida Sans Regular
serif.plain.alphabetic = Times New Roman
serif.plain.chinese-ms950 = MingLiU
serif.plain.hebrew = David
serif.plain.japanese = MS Mincho
serif.plain.korean = Batang
serif.bold.alphabetic = Times New Roman Bold
serif.bold.chinese-ms950 = PMingLiU
serif.bold.hebrew = David Bold
serif.bold.japanese = MS Mincho
serif.bold.korean = Batang
serif.italic.alphabetic = Times New Roman Italic
serif.italic.chinese-ms950 = PMingLiU
serif.italic.hebrew = David
serif.italic.japanese = MS Mincho
serif.italic.korean = Batang
serif.bolditalic.alphabetic = Times New Roman Bold Italic
serif.bolditalic.chinese-ms950 = PMingLiU
serif.bolditalic.hebrew = David Bold
serif.bolditalic.japanese = MS Mincho
serif.bolditalic.korean = Batang
sansserif.plain.alphabetic = Arial
sansserif.plain.chinese-ms950 = MingLiU
sansserif.plain.hebrew = David
sansserif.plain.japanese = MS Gothic
sansserif.plain.korean = Gulim
sansserif.bold.alphabetic = Arial Bold
sansserif.bold.chinese-ms950 = PMingLiU