JBuilder光标问题的解决方案

转载 2004年10月22日 13:51:00
  大家常常说JBuilder在中文系统中存在光标错位的问题,都认为这是JBuilder的一个Bug,其实这实在是冤枉JBuilder了!大家讨论出来的解决方法无外乎两种:

  1、将编辑器的字体改为宋体,用这种方法带来的问题是,在宋体下的英文字体实在难看,阅读起来不太顺眼;

  2、就是将编辑器字体的粗体属性去掉,这样也影响代码的可读性。

  其实,造成JBuilder光标错位的问题并不是Borland的错误,而是Java的宗师——Sun的罪过!大家一定知道i18n吧?在不同的区域设置中,JDK自动调用与之相对应的properties文件,而在JDK中,Sun所推出的与中文系统相对应的properties文件存在问题,在它之中没有区分英文字体的正常、粗体和斜体,从而导致了以上所说的问题,解决的方法很简单,只要将这个properties文件修改正确就可以了,修改方法如下:
在jre/lib目录中找到font.properties.zh文件,编辑这个文件并修改成如下内容:

# @(#)font.properties.zh1.16 00/10/06
#
# AWT Font default Properties for Chinese Windows
#


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

dialoginput.bold.0=Courier New Bold,ANSI_CHARSET
dialoginput.bold.1=/u5b8b/u4f53,GB2312_CHARSET
dialoginput.bold.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
dialoginput.bold.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

dialoginput.italic.0=Courier New Italic,ANSI_CHARSET
dialoginput.italic.1=/u5b8b/u4f53,GB2312_CHARSET
dialoginput.italic.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
dialoginput.italic.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED



dialoginput.bolditalic.0=Courier New Bold Italic,ANSI_CHARSET
dialoginput.bolditalic.1=/u5b8b/u4f53,GB2312_CHARSET
dialoginput.bolditalic.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
dialoginput.bolditalic.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

serif.plain.0=Times New Roman,ANSI_CHARSET
serif.plain.1=/u5b8b/u4f53,GB2312_CHARSET
serif.plain.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
serif.plain.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED


serif.bold.0=Times New Roman Bold,ANSI_CHARSET
serif.bold.1=/u5b8b/u4f53,GB2312_CHARSET
serif.bold.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
serif.bold.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

serif.italic.0=Times New Roman Italic,ANSI_CHARSET
serif.italic.1=/u5b8b/u4f53,GB2312_CHARSET
serif.italic.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
serif.italic.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

serif.bolditalic.0=Times New Roman Bold Italic,ANSI_CHARSET


serif.bolditalic.1=/u5b8b/u4f53,GB2312_CHARSET
serif.bolditalic.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
serif.bolditalic.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

sansserif.plain.0=Arial,ANSI_CHARSET
sansserif.plain.1=/u5b8b/u4f53,GB2312_CHARSET
sansserif.plain.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
sansserif.plain.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

sansserif.bold.0=Arial Bold,ANSI_CHARSET
sansserif.bold.1=/u5b8b/u4f53,GB2312_CHARSET
sansserif.bold.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
sansserif.bold.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

sansserif.italic.0=Arial Italic,ANSI_CHARSET
sansserif.italic.1=/u5b8b/u4f53,GB2312_CHARSET
sansserif.italic.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
sansserif.italic.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

sansserif.bolditalic.0=Arial Bold Italic,ANSI_CHARSET
sansserif.bolditalic.1=/u5b8b/u4f53,GB2312_CHARSET
sansserif.bolditalic.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED


sansserif.bolditalic.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

monospaced.plain.0=Courier New,GB2312_CHARSET
monospaced.plain.1=/u5b8b/u4f53,GB2312_CHARSET
monospaced.plain.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
monospaced.plain.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

monospaced.bold.0=Courier New Bold,GB2312_CHARSET
monospaced.bold.1=/u5b8b/u4f53,GB2312_CHARSET
monospaced.bold.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
monospaced.bold.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

monospaced.italic.0=Courier New Italic,GB2312_CHARSET
monospaced.italic.1=/u5b8b/u4f53,GB2312_CHARSET
monospaced.italic.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
monospaced.italic.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED

monospaced.bolditalic.0=Courier New Bold Italic,GB2312_CHARSET
monospaced.bolditalic.1=/u5b8b/u4f53,GB2312_CHARSET
monospaced.bolditalic.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
monospaced.bolditalic.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED



# name aliases
#
#alias.timesroman=serif
#alias.helvetica=sansserif
#alias.courier=monospaced

# for backward compatibility
#timesroman.0=Times New Roman,ANSI_CHARSET
#helvetica.0=Arial,ANSI_CHARSET
#courier.0=Courier New,ANSI_CHARSET
zapfdingbats.0=WingDings,SYMBOL_CHARSET

# font filenames for reduced initialization time
#
filename./u5b8b/u4f53=SIMSUN.TTF

filename.Arial=ARIAL.TTF
filename.Arial_Bold=ARIALBD.TTF
filename.Arial_Italic=ARIALI.TTF
filename.Arial_Bold_Italic=ARIALBI.TTF

filename.Courier_New=COUR.TTF



filename.Courier_New_Bold=COURBD.TTF
filename.Courier_New_Italic=COURI.TTF
filename.Courier_New_Bold_Italic=COURBI.TTF

filename.Times_New_Roman=TIMES.TTF
filename.Times_New_Roman_Bold=TIMESBD.TTF
filename.Times_New_Roman_Italic=TIMESI.TTF
filename.Times_New_Roman_Bold_Italic=TIMESBI.TTF

filename.WingDings=WINGDING.TTF
filename.Symbol=SYMBOL.TTF

# Default font definition
#
default.char=2751

# Static FontCharset info.
#
#fontcharset.dialog.0=sun.io.CharToByteCp1252
fontcharset.dialog.1=sun.io.CharToByteGBK
fontcharset.dialog.2=sun.awt.windows.CharToByteWingDings


fontcharset.dialog.3=sun.awt.CharToByteSymbol

#fontcharset.dialoginput.0=sun.io.CharToByteCp1252
fontcharset.dialoginput.1=sun.io.CharToByteGBK
fontcharset.dialoginput.2=sun.awt.windows.CharToByteWingDings
fontcharset.dialoginput.3=sun.awt.CharToByteSymbol

#fontcharset.serif.0=sun.io.CharToByteCp1252
fontcharset.serif.1=sun.io.CharToByteGBK
fontcharset.serif.2=sun.awt.windows.CharToByteWingDings
fontcharset.serif.3=sun.awt.CharToByteSymbol

#fontcharset.sansserif.0=sun.io.CharToByteCp1252
fontcharset.sansserif.1=sun.io.CharToByteGBK
fontcharset.sansserif.2=sun.awt.windows.CharToByteWingDings
fontcharset.sansserif.3=sun.awt.CharToByteSymbol

#fontcharset.monospaced.0=sun.io.CharToByteCp1252
fontcharset.monospaced.1=sun.io.CharToByteGBK
fontcharset.monospaced.2=sun.awt.windows.CharToByteWingDings
fontcharset.monospaced.3=sun.awt.CharToByteSymbol

# Exclusion Range info.
#
exclusion.dialog.plain.0=00a0-f8ff
exclusion.dialog.italic.0=00a0-f8ff
exclusion.dialog.bold.0=00a0-f8ff
exclusion.dialog.bolditalic.0=00a0-f8ff

exclusion.dialoginput.plain.0=00a0-f8ff
exclusion.dialoginput.italic.0=00a0-f8ff
exclusion.dialoginput.bold.0=00a0-f8ff
exclusion.dialoginput.bolditalic.0=00a0-f8ff

exclusion.serif.plain.0=00a0-f8ff
exclusion.serif.italic.0=00a0-f8ff
exclusion.serif.bold.0=00a0-f8ff
exclusion.serif.bolditalic.0=00a0-f8ff

exclusion.sansserif.plain.0=00a0-f8ff
exclusion.sansserif.italic.0=00a0-f8ff
exclusion.sansserif.bold.0=00a0-f8ff
exclusion.sansserif.bolditalic.0=00a0-f8ff

exclusion.monospaced.italic.0=00a0-f8ff
exclusion.monospaced.bold.0=00a0-f8ff
exclusion.monospaced.bolditalic.0=00a0-f8ff

# charset for text input
# inputtextcharset=GB2312_CHARSET

  保存后,一切问题就解决了!

  这种方法也适用于任何相同的问题。

  [题外话]这种错误SUN真的应该好好反省一下了,希望以后他们做的东西能够测试更好一些。

JBuilder9光标错位解决方法

网上有不少的文章,但是有些是有问题的,但是有些文章给出的font.property是解决了光标错位问题,但是中文也变成了乱码了,下面给出的这个是我经过验证可以维持中文同时又解决了问题的。Jbuilde...
  • liswa
  • liswa
  • 2006年02月23日 23:53
  • 1498

Jbuilder 9.0里光标错位问题的解决办法

Jbuilder 9.0里光标错位问题的解决办法  两中解决方法第一种:取得字体的粗体显示;第二种:修改font.properties.zh文件;步骤如下1. 用记事本打开C:/JBuilder9/j...
  • wayfoon322
  • wayfoon322
  • 2008年04月19日 14:04
  • 581

JBuilder光标问题的解决方案

  大家常常说JBuilder在中文系统中存在光标错位的问题,都认为这是JBuilder的一个Bug,其实这实在是冤枉JBuilder了!大家讨论出来的解决方法无外乎两种:  1、将编辑器的字体改为宋...
  • okjohn
  • okjohn
  • 2006年12月07日 11:13
  • 632

JBuilder Editor光标定位问题的三种解决方案

在安装了JBuilder 9.0后,发现当输入保留字(Reserved Word),如Public、static class等时,由于字符对齐的缘故导致光标不能正确定位。方案1:更换编辑器颜色主题。以...
  • flyspace169
  • flyspace169
  • 2005年08月29日 23:28
  • 1413

Jbuilder光标错位解决方案

方案一: Tools-->Editor   Options-->Color-->Screen   element-->Reserved   Word     将它的Bold复选框选为空即可。  JBu...
  • shilang999
  • shilang999
  • 2010年12月08日 08:31
  • 686

jbuilder丢字符和光标位置不对

简体中文操作系统中,JDK默认文件编码方式是GB18030,JBuilder对这种编码方式支持不够好。设置编码参数:/bin/jdk.config,在文件最后一行加上vmparam   -Dfile....
  • rootless
  • rootless
  • 2007年10月11日 13:23
  • 448

Jbuilder 9.0光标错位问题

Jbuilder 9.0光标错位时需要修改font.properties.zh文件 1、找到.../JBuilder9/jdk1.4/jre/lib/font.properties.zh文件 ...
  • lanmuhhh2015
  • lanmuhhh2015
  • 2017年11月22日 14:45
  • 31

从JBuilder到Eclipse--几个技巧

我想很多Java同仁最开始都是用JBuilder来开发, 初次接触Eclipse时都会觉得很别扭, 常常需要一段时间来慢慢适应它的风格, 然后慢慢地喜欢上它, 最后慢慢地忘记JBuilder(Borl...
  • rockis
  • rockis
  • 2004年12月07日 09:38
  • 806

JBuilder在中文环境中光标问题的解决方案

大家常常说JBuilder在中文系统中存在光标错位的问题,都认为这是JBuilder的一个Bug,其实这实在是冤枉JBuilder了!大家讨论出来的解决方法无外乎两种:  1、将编辑器的字体改为宋体,...
  • j0hnny
  • j0hnny
  • 2005年02月24日 13:06
  • 426

图解Java开发工具JBuilder 9.0(三)

三)对象浏览器  在用户界面设计器上任选一个控件,则在右下方就会出现对象浏览器。对象浏览器在程序开发中具有非常重要的作用,是用户进行可视化编程的基础。对象浏览器的主要作用是向用户提供对象的声明段中的属...
  • chensheng913
  • chensheng913
  • 2004年08月09日 22:22
  • 7134
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JBuilder光标问题的解决方案
举报原因:
原因补充:

(最多只允许输入30个字)