Использование принудительного шрифта Monospace Terminal Java AWT - PullRequest
3 голосов
/ 16 августа 2011

Я хочу использовать 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 Ответ

1 голос
/ 06 сентября 2011

Похоже, вы Java AWT вообще не поддерживает растровые шрифты - судя по тому, что я вижу в классе Font - он обрабатывает только TRUETYPE_FONT и TYPE1_FONT.Терминал - это растровый шрифт, поэтому его нелегко использовать с помощью механизма шрифтов AWT.

В настоящее время я пытаюсь решить аналогичную проблему, используя собственный простой движок растровых шрифтов с ограниченным успехом в .этот вопрос .

...