我编写了一些代码来在不使用drawString的情况下在j2me画布上绘制文本 由于某些原因,我不能使用drawString方法 所以,当我运行我的程序时,我会处理异常的字符间距 请帮我解决问题。这是我的代码:
public void paint(Graphics g) {
...
String str = ... ;
int x0 = 10;
int y0 = getHeight() - 50;
Font f = g.getFont();
int charWidth = 0;
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
charWidth = f.charWidth(ch);
x0 += charWidth;
g.drawChar(ch, x0, y0, 0);
}
...
}
答案 0 :(得分:2)
改为使用:
public void paint(Graphics g) {
...
String str = ... ;
int x0 = 10;
int y0 = getHeight() - 50;
Font f = g.getFont();
int lastWidth = 0;
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
g.drawChar(ch, x0 + lastWidth, y0, 0);
lastWidth += f.charWidth(ch);
}
...
}
在你的drawChar方法中,你使用0(它等于Graphics.TOP | Graphics.LEFT)所以你会在绘制当前字符后增加“lastWidth”,或者使用另一个锚点(例如Graphics.TOP | Graphics.RIGHT) )对于drawChar。