Java GUI
J2ME读取web上的图片

netbeans字体问题的解决

Thomas posted @ Jul 17, 2009 10:08:51 AM in Programme with tags java 字体 NetBeans gui , 2347 阅读

        netbeans已经出6.7了,eclipse也出了3.5了两个Java的IDE说实在的都很好用,但是我去发现我在不知不觉中使用netbeans的次数以及时间都比eclipse多了,只是依然没有放弃eclipse而已,可是这个问题依然是从eclipse刚转型过来的我所无法释然的,就是——字体,这是不争的事实,eclipse的字体无论是工具栏的还是编辑界面内的都比netbeans好很多,这些其实也都可以忍受,毕竟我是根据IDE来选择字体的(很庆幸,我有不止一套等跨字体来应对这先问题),但是netbeans无法再编码中使用非英文语系的语言就让我很郁闷了,这些要给客户看的哇

文章来源:树荫之下

       

        通过多方的搜索(其实也没有多多无非就是Google+百度),找到一个合适的方法,其实,这个netbeans的界面是swing写的,而eclipse的界面是SWT写的,根据有的说法SWT是一种原生界面,就是和系统的是统一的,而natbeans的swing则要依赖于Java,于是便有这样一个问题了,Java的字体映射中没有你想要的字体,当然无法正确映射了,所以我们要做的也就在此。

        大体可以分为三步

                1。注册字体。

                2。建立映射关系

                3。修改索引顺序

        首先,我们打开java的安装目录进入jdk\jre\lib目录找到fontconfig.98.bfc和fontconfig.98.properties.src两个文件,备份之后删除它们,接下来我们在找到fontconfig.properties.src文件,复制一份,将后缀.src这个后缀去掉,用editplus或者其他文本编辑工具打开它,我们可以看到里面的文件内容,我们先来注册字体,找到以下文字:

  1. # Font File Names

根据其格式我们注册字体,我注册的是ProFontWindows,代码如下:

  1. filename.ProFontWindows = ProFontWindows.ttf #对应正常字体
  2. filename.ProFontWindows_Bold = ProFontWindows.ttf #对应粗体字
  3. filename.ProFontWindows_Italic = ProFontWindows.ttf #对应斜体字
  4. filename.ProFontWindows_Bold_Italic = ProFontWindows.ttf #对应粗斜体字

这样字体就注册成功了

        建立映射关系,找到fontconfig.properties文件下的

  1. # Component Font Mappings

然后修改以下代码部分:

  1. monospaced.plain.alphabetic=Courier New
  2. monospaced.plain.chinese-ms950=MingLiU
  3. monospaced.plain.hebrew=David
  4. monospaced.plain.japanese=MS Gothic
  5. monospaced.plain.korean=GulimChe
  6.  
  7. monospaced.bold.alphabetic=Courier New Bold
  8. monospaced.bold.chinese-ms950=PMingLiU
  9. monospaced.bold.hebrew=David Bold
  10. monospaced.bold.japanese=MS Gothic
  11. monospaced.bold.korean=GulimChe
  12.  
  13. monospaced.italic.alphabetic=Courier New Italic
  14. monospaced.italic.chinese-ms950=PMingLiU
  15. monospaced.italic.hebrew=David
  16. monospaced.italic.japanese=MS Gothic
  17. monospaced.italic.korean=GulimChe
  18.  
  19. monospaced.bolditalic.alphabetic=Courier New Bold Italic
  20. monospaced.bolditalic.chinese-ms950=PMingLiU
  21. monospaced.bolditalic.hebrew=David Bold
  22. monospaced.bolditalic.japanese=MS Gothic
  23. monospaced.bolditalic.korean=GulimChe

修改后的内容如下:

  1. monospaced.plain.alphabetic=ProFontWindows
  2. monospaced.plain.chinese-ms950=SimSun
  3. monospaced.plain.hebrew=David
  4. monospaced.plain.japanese=MS Gothic
  5. monospaced.plain.korean=GulimChe
  6.  
  7. monospaced.bold.alphabetic=ProFontWindows Bold
  8. monospaced.bold.chinese-ms950=SimSun
  9. monospaced.bold.hebrew=David Bold
  10. monospaced.bold.japanese=MS Gothic
  11. monospaced.bold.korean=GulimChe
  12.  
  13. monospaced.italic.alphabetic=ProFontWindows Italic
  14. monospaced.italic.chinese-ms950=SimSun
  15. monospaced.italic.hebrew=David
  16. monospaced.italic.japanese=MS Gothic
  17. monospaced.italic.korean=GulimChe
  18.  
  19. monospaced.bolditalic.alphabetic=ProFontWindows Bold Italic
  20. monospaced.bolditalic.chinese-ms950=SimSun
  21. monospaced.bolditalic.hebrew=David Bold
  22. monospaced.bolditalic.japanese=MS Gothic
  23. monospaced.bolditalic.korean=GulimChe

         接下来的任务就简单了,找到fontconfig.properties文件下的

  1. # Search Sequences

然后修改以下代码:

  1. sequence.monospaced.GBK=chinese-ms936,alphabetic,dingbats,symbol
  2. sequence.monospaced.GB18030=chinese-gb18030,alphabetic,dingbats,symbol

修改为以下内如,如下:

  1. sequence.monospaced.GBK=alphabetic,chinese-ms936,dingbats,symbol
  2. sequence.monospaced.x-windows-950=alphabetic,chinese-ms950,dingbats,symbol

这样就会先检索等宽字体的英文部分,然后是中文。

        好了,修改任务结束,保存退出。启动netbeans,修改字体为monospaced字体大小根基你的实际情况进行修改。这样在源代码中就可以显示中文字了,但是这样有个缺点就是如果英文部分字体和中文部分字体同字号时,字体大小有所不同的情况,他会根据中文字体的大小来显示每行,这样整体来看就显得有些稀松了,不过好过无法使用中文,或者用宋体。

        另外我这里配置完成之后总是出现一些问题,索性我将

  1. # Component Font Mappings

部分全部改成ProfontWindows结果反而正常了=。=!

        后记:记得在做这次改变之前看过一篇关于Java下字体映射的文章,当时没有看明白,只是现在记得那篇文章里有一个跟好的办法,字体的映射和我们所注册的字体统一了,就是在netbeans下选择我们所需的字体就可以了,而不是这种错乱的映射方式,可惜好文章一去不会了,已经找不到了,只能这样先凑和了,相信缘分到了,我还可以找到,到时候在改回来就好了。而且现在网上关于这个问题的文章也是相当的多,而且CSDN中有很详细的解说,还有官方的说明,链接忘了留,大家想要的话自己搜索下吧Google是无比的强大。

本文为原创转载请注明微笑 Creative Commons License
转载时请遵循 “署名-非商业用途-保持一致” 的创作共用协议

登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter