日期:2014-05-20  浏览次数:20814 次

在不同的JDK或操作系统中,字符串宽度不一样的问题
对于下面这段程序:
Graphics2D   g   =   (   Graphics2D   )   new   java.awt.image.BufferedImage(   10,   10,   java.awt.image.BufferedImage.TYPE_INT_ARGB   ).getGraphics();
FontMetrics   fm   =   g.getFontMetrics(   new   Font(   "宋体 ",   0,   12   )   );
int   w   =   fm.stringWidth(   "hello   everyone!   大家好 "   );

在不同的JDK或操作系统中,算出来的宽度w有时不一样,请问应该如何修改上面的程序,才能始终得到同样的宽度呢?


------解决方案--------------------
操作系统不一样,算出来的长度不一样很正确的啊~~除非你去改操作系统去,这个程序没关系.
------解决方案--------------------
根显卡、分辨率什么的好像也有关系
------解决方案--------------------
你应当作的是“修改上面的程序,才能始终得到类似的画面效果”,而不是掩耳盗铃般,只想得到一个相同的结果
------解决方案--------------------
要保证有相同的宽度,需要PhysicalFontFile 中的字是一样宽的,换句话说,只要你使用同样的字体文件(也可以叫做字体库文件,大小就是一样的。)
------解决方案--------------------
帮忙顶
------解决方案--------------------
关注一下....
------解决方案--------------------
up
------解决方案--------------------
这个有点难。。

好好看看需求,看有没有什么地方可以改进改进