运行以下代码:获得的FontMetrics的StackOverflowError
import java.awt.Font;
import java.awt.FontMetrics;
public class MetricsTest {
public static void main(String[] args) {
Font myFontTest=new Font("Arial", Font.PLAIN, 11);
FontMetrics metrics = new FontMetrics(myFontTest) {};
int characterWidth=metrics.charWidth('A');
System.out.println(characterWidth);
}
}
产生这样的错误:在螺纹
异常 “主” java.lang.StackOverflowError的
在java.awt.FontMetrics.getWidths( FontMetrics.java:430)
at java.awt.FontMetrics.charWidth(FontMetrics.java:333)
在java.awt.FontMetrics.getWidths(FontMetrics.java:430)
在java.awt.FontMetrics.charWidth(FontMetrics.java:333)
在java.awt.FontMetrics.getWidths(FontMetrics对象。):
等等。
你不能只创建一个'新的FontMetrics'你需要从_somewhere_获取一个。您没有在EDT中运行,也没有Swing组件 - 字体未呈现,因此它如何具有宽度? –
谢谢。它帮助我找到解决方案 – geo