Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1208713
  • 博文数量: 252
  • 博客积分: 5421
  • 博客等级: 大校
  • 技术积分: 2418
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-17 12:59
文章分类

全部博文(252)

文章存档

2017年(3)

2016年(18)

2015年(31)

2014年(18)

2013年(7)

2012年(8)

2011年(12)

2010年(30)

2009年(32)

2008年(57)

2007年(36)

分类:

2008-07-04 17:54:02

        通过修改JRE的字体配置文件,可以改变所有Swing应用程序的字体显示。

        NetBeans被许多我们中国java开发者指摘的地方就是它的字体难看。细分析一下原因不难找出:netbeans代码编辑器和输出窗口使用monospaced字体来显示,而monospaced代表着等宽字体,应该是显示程序源代码的合理选择。monospaced是种逻辑字体,它在不同语言和操作系统上映射为不同的物理字体。一般英文操作系统将monospaced字体映射为Courier New。这种字体非常美观,适宜于显示源代码,在Eclipse和Microsoft Visual Studio等IDE中是显示源代码的缺省字体,它也是许多技术网站、博客或者论坛显示源代码的缺省字体。

        问题就出在这儿。一般中文操作系统上,monospaced字体是被映射到宋体上的,虽然宋体显示中文非常好看,但它的英文显示非常糟糕。由于monospaced被映射成宋体,所以netbeans在刚装上后没做任何配置之前,其编辑器和输出窗口里的字体都是宋体,其英文显示也就比较难看。

        今天看的这个文档指出JRE的字体映射是可以配置的。简单来说就是在jre/lib下用户可以创建一个fongconfig.properties,配置自定义的字体映射关系。当然不需要从头创建一个字体配置文件,只需拷贝一份字体配置模板文件,然后稍做改动就可以了。具体操作步骤如下:

        1.将JDK_HOME/jre/lib目录下的fontconfig.properties.src复制一份文件fontconfig.properties,并放在该目录下。

        2.编辑文件fontconfig.properties,查找到下面一行:

sequence.monospaced.GBK=chinese-ms936, alphabetic,dingbats,symbol

       可以发现由于中文monospaced字体缺省查找顺序是先使用chinese-ms936,结果造成了英文被宋体来显示。纠正非常简单,只需将chinese-ms936和alphabetic调换顺序就可以了:

sequence.monospaced.GBK=alphabetic,chinese-ms936,dingbats,symbol

        3.保存该文件后启动netbeans,这时就会发现netbeans编辑器和输出窗口的字体都变成了Courier New,很好看。如果你已经改了缺省字体设置,不妨再把它改回到缺省的monospaced,再看看结果是不是如你所愿。

        注意上面的方法不是只针对netbeans英文版,中文版的netbeans也是这样。对于任何swing应用程序都起作用。

阅读(1946) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2008-08-04 19:06:01

SAP99,支持下,也欢迎访问我的博客, SAP资料多多 http://sap99.cublog.cn PA系列教材 web_dynpro_for_java Web_Dynpro_for_abap abap资料-在SAP中查询TABL SAP实施顾问宝典 SAP配置(录像)-维护供应 SAP配置(录像)-定义税务 sap全面概述中文