使用强制Monospace Terminal字体Java AWT

时间:2011-08-16 11:38:43

标签: java fonts awt

我想使用Terminal face在我的程序中显示读入字符串(在Windows上,平台独立性并不重要)。

如果我使用Font font = Font.decode("Terminal-10");它不是等宽的。

如果我使用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 个答案:

答案 0 :(得分:1)

看起来Java AWT根本不支持位图字体 - 从我在Font类中看到的内容来看 - 它只处理TRUETYPE_FONTTYPE1_FONT。终端是一种位图字体,所以使用AWT的Font机器没有简单的方法来使用它。

我目前正试图通过在this question中滚动我自己的简单位图字体引擎来解决类似的问题。