Q:

j2me drawChar abnormal character spacing?

I write some code to draw a text on a j2me canvas without using drawString.
For some reasons I can't use drawString method.
So, when I run my program, I deal with abnormal character spacing.
Please help me to solve the problem. This is my code:
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);            
        }
        ...
}

A:

instead use this:
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);
        }
        ...
}     

In your drawChar method,you use 0(it is equal to Graphics.TOP|Graphics.LEFT) so you would increase "lastWidth" after draw current char,or use another anchor(for example Graphics.TOP|Graphics.RIGHT) for drawChar.

