Java me j2me drawChar字符间距异常?

Java me j2me drawChar字符间距异常?,java-me,canvas,paint,lcdui,Java Me,Canvas,Paint,Lcdui,我编写了一些代码在j2me画布上绘制文本,而不使用drawString。 由于某些原因,我无法使用drawString方法。 因此,当我运行程序时,我会处理异常的字符间距。 请帮我解决这个问题。这是我的代码: public void paint(Graphics g) { ... String str = ... ; int x0 = 10; int y0 = getHeight() - 50; Font f = g

我编写了一些代码在j2me画布上绘制文本,而不使用drawString。
由于某些原因,我无法使用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);            
        }
        ...
}
public void绘制(图形g){
...
字符串str=;
int x0=10;
int y0=getHeight()-50;
Font f=g.getFont();
int charWidth=0;
对于(int i=0;i
改用以下方法:

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);
        }
        ...
}     
public void绘制(图形g){
...
字符串str=;
int x0=10;
int y0=getHeight()-50;
Font f=g.getFont();
int lastWidth=0;
对于(int i=0;i

在drawChar方法中,使用0(等于Graphics.TOP | Graphics.LEFT),以便在绘制当前字符后增加“lastWidth”,或者对drawChar使用另一个定位点(例如Graphics.TOP | Graphics.RIGHT)。

您应该使用图形定位点常量的组合作为绘制方法的最后一个参数,例如
Graphics.TOP | Graphics.LEFT
而不是
0