指定一种字体之后,
在屏幕上显示某断文字的时候,我只能知道他的结束位置,
所以需要计算开始的位置和高度,才能把文字正确的画到上面但是没有找到方法,
Font类中的一些api调用没有起作用,请大家帮助!!
谢谢

解决方案 »

  1.   

    import java.awt.Font;
    import javax.swing.SwingUtilities;
    import java.awt.FontMetrics;
    ...Font font = new Font("楷体_GB2312", Font.PLAIN, 14);
    int width = SwingUtilities.computeStringWidth(new FontMetrics(font), "要计算宽度的文本");
    高度就是14
      

  2.   

    private Dimension getBounds(Graphics2D g2 , String s) {
            Font font = g2.getFont();
            return font.createGlyphVector(g2.getFontRenderContext(),s).getVisualBounds().getBounds().getSize();
    }
    接分
      

  3.   

    非常感谢!!太感谢了!
    但是FontMetrics 的构造方法是protected,改如何解决?
    谢谢!!
      

  4.   

    String text = "Hello World"
    int textWidth = g.getFontMetrics().stringWidth(text);
    int textHeight = g.getFontMetrics().getHeight();
      

  5.   

    import java.awt.Font;
    import java.awt.font.FontRenderContext;
    import java.awt.font.TextLayout;...Font f = new Font("楷体_GB2312", Font.PLAIN, 14);
    TextLayout tl = new TextLayout("文本", f, new FontRenderContext(null, false, false));
    int width = (int) tl.getBounds().getWidth();
    int height = (int) (tl.getAscent()+tl.getDescent());