网上看见说
Graphics g;
g=this.getGraphics();
g.getFontMetrics().getHeight();
即可得到,但是得到的高度显然不正确的,我在输出的字母边上画了个10px的矩形,字母明明和矩形差不多大,可g.getFontMetrics().getHeight()得到的高度居然是18。
请高手指教一个可行的方法。

解决方案 »

  1.   

    用Font 对象 剩下自己去插帮助嘿嘿!!!
      

  2.   

    g.getFontMetrics().getHeight()这个方法是正确的,
    因为getHeight得到的高度是getAscent()+getDescent()+getLeading().
    不能简单与10px的矩形进行比较。
      

  3.   

    关键是g.getFontMetrics().getHeight()得到的这个值是什么单位的px?
    显然不是px单位的,我需要把得到的Height转换成px.我只想知道一个字的高度是多少px.
      

  4.   

    g.getFontMetrics().getHeight()高度的单位是px。
      

  5.   

    g.getFontMetrics().getHeight()
    返回的应该是行高值
      

  6.   

    字母的高度不能说明问题。
    一个字的实际高度和字体的高度是不一样的。
    agf这几个字高度便不一样,而且字的上端和下端都有空余位置,而且不同字体的空白位置还不一样。
      

  7.   

    字体的高度包括三部分:Ascent、Descent、Leading(抱歉我忘了翻译后的名称)
    用2楼所说的方法即可得到他们的值其中:在三行的英文书写纸中
    Ascent是b k 等字母的高度
    Descent是p g等字母的下半部分的高度
    Leading是行与行之间的间隔的高度
    (我的机子上的图片无法复制,只能这样说了)
    具体可以参看Core Java 2 Vol1 Chapter 7而getHeight得到的高度是getAscent()+getDescent()+getLeading(),是三者之和
      

  8.   

    我来总结一下这个问题,我发觉讨论有些跑题了。
    现状是我想得到某种字体的准确的高度(getAscent()+getDescent()+getLeading()),以像素为单位,我看了SDK的文档,那个getHeight()方法号称是派这个用处的,所以我就画了一个高度是getHeight()的矩形框,然后在这个框里面写字,结果发现框的高度远远大于字的高度,所以感到奇怪,我想得到字的高度,仅此而已。