Java me j2me drawChar字符间距异常?
我编写了一些代码在j2me画布上绘制文本,而不使用drawString。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
由于某些原因,我无法使用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
。