Стандартные шрифты в Java - PullRequest
0 голосов
/ 05 августа 2009

У меня есть некоторый Swing-код (написанный в 1.6 для 1.6), который специально устанавливает шрифт в текстовой области на Courier, но в некоторых системах Windows вместо этого он отображается как Arial (по умолчанию для системы?). Означает ли это, что в системе отсутствует шрифт? Каково поведение Java, когда она не может найти нужный шрифт? Жаловаться? Это регистрирует это где-нибудь? Это немедленно прибегает к использованию системы по умолчанию? Отличается ли поведение между версиями JVM 1.4 / 1.5 / 1.6?

Кто-нибудь еще сталкивался с этим? Я был очень удивлен, увидев в пользовательском интерфейсе что-то отличное от того, что я жестко ввел в приложение, и только на некоторых системах. Основная проблема заключается в том, что мне нужен моноширинный стиль шрифта для этого конкретного случая, а Arial не моноширинный. Есть ли способ указать запасной вариант, если определенный шрифт не найден? Что-то вроде:

если шрифт доступен, используйте "Курьер" еще использовать "моноширинный"

???

Ответы [ 2 ]

1 голос
/ 05 августа 2009

Сначала вы должны проверить, входит ли "Courier" в результаты GraphicsEnvironment.getAvailableFontFamilyNames()

Я не знаю ни одного встроенного в Java механизма для поведения "if-unavailable-fallback-to".

0 голосов
/ 07 ноября 2017

Согласно этой статье 1 единственные моноширинные шрифты TrueType, поставляемые Microsoft, это Courier New и Lucida Sans Typewriter.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...