中文 Windows 下面,NetBeans 默认的界面和字体实在有点丑,得优化一下。
必须安装 Java SE Development Kit (JDK) 6 Update 10 或更新的版本,早期版本对字体反锯齿支持不好。
下载地址:http://java.sun.com/javase/downloads/index.jsp
ClearType Tuner PowerToy 用来调整 ClearType 字体反锯齿的高级设置,可以适当把字体显示调粗一些,看上去不累眼。
下载地址:http://www.microsoft.com/windowsxp/downloads/powertoys/xppowertoys.mspx
打开 C:\Program Files\NetBeans 6.5\etc\ 目录中的 netbeans.conf 文件,找到:
# Options used by NetBeans launcher by default, can be overridden by explicit # command line switches: netbeans_default_options=.....
在 netbeans_default_options 的参数字符串中添加 – –fontsize 12 ––laf javax.swing.plaf.metal.MetalLookAndFeel。看上去像:
# Options used by NetBeans launcher by default, can be overridden by explicit # command line switches: netbeans_default_options="-J-client -J-Xverify:none -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-XX:MaxPermSize=200m -J-Dapple.laf.useScreenMenuBar=true -J-Dsun.java2d.noddraw=false --fontsize 12 --laf javax.swing.plaf.metal.MetalLookAndFeel"
–-fontsize 12 是让界面字体变成 12 点大小,正好符合中文显示要求。
而 –-laf javax.swing.plaf.metal.MetalLookAndFeel 是要求 NetBeans 使用非操作系统原生的界面主题。不过这个看个人习惯了,不喜欢可以不加这一部分到命令行参数中。
当然,这里的 -fontsize 12 也可以用另外一个命令来代替:
-J-Dswing.useSystemFontSettings=false
打开 C:\Program Files\Java\jdk1.6.0_11\jre\lib 目录,把 fontconfig.98.bfc 和 fontconfig.98.properties.src 两个文件改名或删除。
然后将 fontconfig.properties.src 复制一份为 fontconfig.properties,并用文本编辑器打开 fontconfig.properties 文件。
修改字体配置文件的目的是让 Java 程序在显示中文和英文时分别使用不同的字体。例如一段代码:
/** * 通过控件视图渲染结果 * 对应的控件视图文件是 view/_controls/footer_control.php 。 */ $this->_renderBlock('footer', $return);
中文部分使用宋体,而英文部分使用 Consolas,显示效果如下图:
要实现这样的效果,需要对字体文件进行三个地方的修改。分别是:
字体文件名采用如下的格式。可以根据需要定义自己喜欢的字体,但不能使用中文字体名。
找到 "# Font File Names" 在下面添加:
# filename. 字体名=字体文件名 filename.Consolas=CONSOLA.TTF filename.Consolas_Bold=CONSOLAB.TTF filename.Consolas_Italic=CONSOLAI.TTF filename.Consolas_Bold_Italic=CONSOLAZ.TTF
定义好了字体名,就可以指定虚拟字体与实际字体的对应关系了。
例如我将默认的 monospaced 虚拟字体指向了刚刚定义的 Consolas 字体,修改设置如下:
monospaced.plain.alphabetic=Courier New monospaced.bold.alphabetic=Courier New Bold monospaced.italic.alphabetic=Courier New Italic monospaced.bolditalic.alphabetic=Courier New Bold Italic # 改为 monospaced.plain.alphabetic=Consolas monospaced.bold.alphabetic=Consolas Bold monospaced.italic.alphabetic=Consolas Italic monospaced.bolditalic.alphabetic=Consolas Bold Ttalic
最后,修改字体查找顺序。修改后会先查找英文字体,再查找中文字体。由于英文字体中没有中文字形,所以就实现了英文和中文采用不同字体显示的效果。
sequence.monospaced.GBK=chinese-ms936,alphabetic,dingbats,symbol sequence.monospaced.GB18030=chinese-gb18030,alphabetic,dingbats,symbol # 改为 sequence.monospaced.GBK=alphabetic,chinese-ms936,dingbats,symbol sequence.monospaced.GB18030=alphabetic,chinese-gb18030,dingbats,symbol
全部工作完成后,重新启动 NetBeans,显示效果很漂亮: