import java.awt.*;
import java.awt.event.*;
public class Test extends Frame{
public Test(){
setSize(200,200);
setVisible(true);
}
public void paint(Graphics g){
g.setFont(new Font("Helvetica", Font.BOLD, 12));
FontMetrics fm = g.getFontMetrics();//this.getFontMetrics也可以使用。
g.drawString("I'm a new coming!", fm.charWidth('I'), 35);
}
public static void main(String[] args){
new Test();
}
}

解决方案 »

  1.   

    字体矩阵有如下方法可以使用:
    方法索引 
    bytesWidth(byte[], int, int) 
    返回以该字体显示的指定字节数组的总的超前宽度。 
    charsWidth(char[], int, int) 
    返回以该字体显示的指定字符数组的总的超前宽度。 
    charWidth(char) 
    返回该字体的指定字符的超前宽度。 
    charWidth(int) 
    返回该字体的指定字符的超前宽度。 
    getAscent() 
    使用该字体的度量来确定所描述的字体的字体上升量 。 
    getDescent() 
    使用该字体的度量来确定所描述的字体的字体下降量 。 
    getFont() 
    获取用该字体的度量描述的字体。 
    getHeight() 
    获取在该字体中一行文本的标准高度。 
    getLeading() 
    确定用该字体的度量描述的字体的标准前导量。 
    getMaxAdvance() 
    获取在该字体中字符的最大超前宽度。 
    getMaxAscent() 
    确定用该字体的度量描述的字体的最大上升量。 
    getMaxDecent() 
    仅仅是为了保持向下兼容性。 不推荐。 
    getMaxDescent() 
    确定用该字体的度量描述的字体的最大上升量。 
    getWidths() 
    获取在该字体中前 256 个字符的超前宽度。 
    stringWidth(String) 
    返回以该字体显示的指定字符串的总的超前宽度。 
    toString() 
    返回一个表示该 FontMetric 对象数值的字符串
      

  2.   

    除了getFont() 和toString() 以外,其它方法返回类型都为inttoString() 返回类型为StringgetFont() 返回类型为Font