1
我的字體類:爲什麼我的字體無法繪製? (或加載) - Java的
// fall back font if init() fails
public volatile static Font fallbackFont = new Font("serif", Font.PLAIN, 24);
public synchronized static Font myFont() {
Font myFont;
try {
FileInputStream fis = new FileInputStream("res/fonts/gregorian.ttf");
myFont = Font.createFont(Font.TRUETYPE_FONT, fis);
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
ge.registerFont(myFont);
} catch (Exception e) {
System.err.println("myFont font failed to load.");
return fallbackFont;
}
return myFont;
}
我然後調用fonts.init()
,g2d.setFont(myFont)
,然後g2d.drawString("test")
我呈現類。
我沒有收到任何錯誤,也沒有收到我的異常消息。但是,屏幕上顯示的字體是我的後備襯線字體,而不是我的自定義字體。爲什麼會這樣?
編輯2:這實際上修復了它,在我的渲染類中出現了另一個愚蠢的錯誤。謝謝。
我也只是看到了錯誤:) – FallAndLearn
,那麼請重新運行你的代碼,看看它在做什麼*現在*,這將是非常不同的,不只是編輯它說「我更新了它」,而是改寫整個事情,因爲你現在遇到了一個不同的問題=)(你也試圖捕獲'Exception',不要;只抓住實際被拋出的異常類型)。還要注意,你的新代碼做了一件非常奇怪的事情:它不是返回一個字體,而是「加載字體並綁定它的圖形上下文」或「返回字體」。這是什麼?一種方法應該做一件事,沒有副作用。 –
這是一個測試方法,用多個不同的例子抓取代碼哈哈。對不起,它是馬虎,這是我第一次嘗試加載字體。 –