j2me drawChar异常字符间距?

时间:2012-02-28 10:54:46

标签: java-me canvas paint lcdui

我编写了一些代码来在不使用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);            
        }
        ...
}

1 个答案:

答案 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。