2011-08-16 82 views
3

我想用Terminal face在我的程序中顯示讀入字符串(在Windows上,平臺獨立性不重要)。如果我使用Font font = Font.decode("Terminal-10");它不是等寬的。使用強制等寬字體終端字體Java AWT

如果我用Font font = new Font(Font.MONOSPACED, Font.PLAIN, 11);一切都很好,但它看起來像Courier。

如果我使用(可能是林誤解的API文檔)

HashMap attr = new HashMap<TextAttribute,TextAttribute>(); 
attr.put("FAMILY", Font.MONOSPACED); 
attr.put("FONT", Font.decode("Terminal-10")); 

font = new Font(attr); 

它只是使用默認值(約12點普通的字體)。如何正確設置終端字體的屬性?我在Graphics2D上繪製字符串並使用ImageIO保存它們。

回答

1

看起來像你Java AWT根本不支持位圖字體 - 根據我在Font類中看到的內容 - 它只能處理TRUETYPE_FONTTYPE1_FONT。終端是一種位圖字體,所以使用AWT的Font機器並不容易。

我目前正在試圖解決類似的問題,在this question中滾動我自己的簡單位圖字體引擎,並取得了有限的成功。