Java:g.drawString()宽度和高度(以像素为单位)?

Java:g.drawString()宽度和高度(以像素为单位)?,java,string,swing,graphics,fontmetrics,Java,String,Swing,Graphics,Fontmetrics,我使用fontmetrics来确定画在jpanel上的字符串的长度和高度,但它给了我不正确的测量值 我用的字串是:“你好,世界,这太棒了” 例如:a使用默认字体绘制字符串;根据字体度量,尺寸为:高度:24;宽度:224 当我测量它时,它实际上是148像素长,10像素高。(基本上通过反复试验) 我想知道java中是否有一个公式或方法可以提供字符串的实际高度和宽度(以像素为单位)。谢谢 我也有这个问题。尝试使用FontMetrics对象的方法getStringBounds(字符串,图形) publi

我使用fontmetrics来确定画在jpanel上的字符串的长度和高度,但它给了我不正确的测量值

我用的字串是:“你好,世界,这太棒了”

例如:a使用默认字体绘制字符串;根据字体度量,尺寸为:高度:24;宽度:224

当我测量它时,它实际上是148像素长,10像素高。(基本上通过反复试验)


我想知道java中是否有一个公式或方法可以提供字符串的实际高度和宽度(以像素为单位)。谢谢

我也有这个问题。尝试使用
FontMetrics
对象的方法
getStringBounds(字符串,图形)

public Rectangle2D bounds = fm.getStringBounds("Hello World this is fantastic", g);
int Ilength = (int)bounds.getWidth();
int Iheight = (int)bounds.getHeight();

签出此帖子在绘制字符串之前,您是否设置了图形的字体<代码>g.setFont(f)。否。现在我还没有设置字体。我只是使用了默认值。啊,我把它改成了Times New Roman,现在它似乎可以工作了。取而代之的是获取
字形向量的边界,如所示。。
public Rectangle2D bounds = fm.getStringBounds("Hello World this is fantastic", g);
int Ilength = (int)bounds.getWidth();
int Iheight = (int)bounds.getHeight();