Однако размер на самом деле не устанавливается (застрял на 1).
Это вряд ли так.Я попросил прямого подтверждения в комментарии к вопросу («Что mont.getSize()
вернуть?» - упс, что за смущающая плохая грамматика), но пока вы не ответили.Я достаточно уверен, что если вы проверите, вы увидите, что mont.getSize()
соответствует размеру, который вы запрашивали.
Альтернативное объяснение вашего наблюдаемого поведения легко доступно.Вы используете GraphicsEnvironment.getAllFonts()
для создания отчетов о зарегистрированных шрифтах, но согласно его документации этот метод
возвращает массив, содержащий экземпляр размера в одну точку всех шрифтов, доступных в этой GraphicsEnvironment.
(выделение добавлено.)
Другой ответ и особенно комментарии к нему предполагают, что объекты Font
, возвращаемые GraphicsEnvironment.getAllFonts()
, могутотличаются и в других отношениях от соответствующих Font
экземпляров, переданных в GraphicsEnvironment.registerFont()
.Хотя, насколько я вижу, такие вариации не документированы, они соответствуют предполагаемому использованию Font
объектов, полученных от GE, как описано в getAllFonts()
документах:
Типичное использование будетпозволить пользователю выбрать определенный шрифт.Затем приложение может определить размер шрифта и установить различные атрибуты шрифта, вызвав метод diverveFont для выбранного экземпляра.
Они говорят, что
Если шрифтв этой GraphicsEnvironment имеется несколько программируемых вариантов, только один экземпляр этого шрифта возвращается в массиве, и другие варианты должны быть получены приложением.
Я не уверен, что "несколько программируемых вариантов"означает атрибуты, которые могут быть изменены при извлечении одного Font
объекта из другого (тогда какой шрифт не будет иметь программируемые варианты?), но ясно, что getAllFonts()
не является механизмом для чтенияверните точные Font
объекты, ранее представленные GraphicsEnvironment.registerFont()
.Эти объекты могут даже не сохраняться как таковые.
С другой стороны, возможно, вы испытываете облегчение в связи с тем, что не несете ответственности за регистрацию всех различных вариантов шрифтов, которые вам могут потребоваться заранее.