JBuliderX中光标错位及中文问题办法

王朝other·作者佚名  2008-05-31
宽屏版  字体: |||超大  

1. 光标定位问题的解决:

(方法一)

JBuilder中出现的光标问题不是Borland的问题,而应该是Sun留下的麻烦。大家知道,i18n问题主要通过操作系统对用户工作地区和使用语言通过LOCALE

(Window2000或XP中的控制面板上通过“区域和语言选项”)来进行区分,从而开发者通过使用相应区域和语言的属性文件来实现软件包对国际化的支持。具体来说,JBuilder通过使用JRE的font.properties.zh来实现对中文字体的支持。

问题就出在SUN提供的font.properties.zh上。SUN在该文件中对各种字体的正常体,粗体,斜体均使用的是正常体。我们知道,在编辑器中,正常体和粗体或斜体占用的宽度是不同的。因此粗体(Bold)和正常体(plain)均使用正常体会导致编辑器对粗体字符宽度计算错误,这下,我们明白了问题的原因所在。有趣的是SUN对英文的字体属性文件却进行了正确的区别。(似乎是故意的啊?!)比较font.properties和font.properties.zh文件,你可以直观的了解该问题。

=======Correct Font Setting =====

# Component Font Mappings

#

dialog.plain.0=Arial,ANSI_CHARSET

dialog.bold.0=Arial Bold,ANSI_CHARSET

dialog.italic.0=Arial Italic,ANSI_CHARSET

如上,plain应该使用字体XXX,bold则应该使用XXX Bold,italic则应该使用XXX Italic。

明白了问题的根结,找到解决问题的办法也就非常轻易了。

对font.properties.zh中的相应Component Font Mappings段替换为下面部分。

# Component Font Mappings

#

dialog.plain.0=Arial,ANSI_CHARSET

dialog.plain.1=\u5b8b\u4f53,GB2312_CHARSET

dialog.plain.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED

dialog.plain.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

dialog.bold.0=Arial Bold,ANSI_CHARSET

dialog.bold.1=\u5b8b\u4f53,GB2312_CHARSET

dialog.bold.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED

dialog.bold.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

dialog.italic.0=Arial Italic,ANSI_CHARSET

dialog.italic.1=\u5b8b\u4f53,GB2312_CHARSET

dialog.italic.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED

dialog.italic.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

dialog.bolditalic.0=Arial Bold Italic,ANSI_CHARSET

dialog.bolditalic.1=\u5b8b\u4f53,GB2312_CHARSET

dialog.bolditalic.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED

dialog.bolditalic.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

dialoginput.plain.0=Courier New,ANSI_CHARSET

dialoginput.plain.1=\u5b8b\u4f53,GB2312_CHARSET

dialoginput.plain.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED

dialoginput.plain.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有