運行以下代碼:獲得的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