Следующее обращается к стандартным настольным свойствам AWT, которые могут быть получены через Toolkit.getDesktopProperty метод.
Каждое настольное свойство называет уникальная строка, которая является "именем" того свойства.
Настольные свойства, поддерживаемые AWT, но не задокументированный в другом месте - обычно, потому что нет никакого подходящего метода или class - документируются здесь.
Настольные свойства, задокументированные в другом месте, являются теми, которые сильно связаны с методом или class, который документирует их.
Так как настольные свойства абстрагируют базовую установку платформы, они, возможно, не доступны в средах, которые не поддерживают их. Когда настольное свойство недоступно по любой причине, реализация возвратится null.
Следующая таблица суммирует настольные свойства, задокументированные здесь, и их типы значения.
Современные рабочие столы поддерживают различные формы текстового сглаживания (сглаживание шрифта).
Они применяются специфичными для платформы тяжелыми компонентами. Однако приложение может хотеть представить текст, используя тот же самый текст, сглаживающийся на поверхности рисунка или легком весе (неплатформа) компонентное использование Graphics2D методы. Это особенно важно, создавая компоненты Swing, которые обязаны казаться непротиворечивыми с собственными настольными компонентами или другими компонентами Swing.
Основное Использование
Стандартное настольное свойство, названное "awt.font.desktophints", может использоваться, чтобы получить подсказки рендеринга, которые лучше всего соответствуют настольные настройки. Возвращаемым значением является КартаRenderingHints которому можно непосредственно примениться к a Graphics2D.
Это - a Map поскольку больше чем одна подсказка может быть необходима. Если ненуль этому можно непосредственно примениться к Graphics2D.
Прислушивание к изменениям рекомендуется, поскольку пользователи, в редких случаях, могут реконфигурировать настольную среду, пока приложения работают в пути, который может влиять на выбор этих подсказок, и кроме того много настольных сред поддерживают динамическое реконфигурирование этих запускающих приложений, чтобы соответствовать новым настройкам.
Нет никакого прямого способа обнаружить, ожидается ли динамическое реконфигурирование запущения приложений, но предположение значения по умолчанию должно быть то, что это ожидается, так как большинство современных настольных сред действительно обеспечивает эту возможность.
Текстовое Измерение
Текст всегда должен измеряться, используя то же самое FontRenderContext как использующийся для того, чтобы представить. Текст, сглаживающий подсказку, является компонентом FontRenderContext. A FontMetrics полученный из Graphics объект, на котором была установлена подсказка, измерит текст соответственно. Это не уникальное требование для клиентов, которые определяют эту подсказку непосредственно, начиная со значения FontRenderContext никогда не должен приниматься, так обсуждается здесь преимущественно как напоминание.
Сохранение и восстановление Состояния графики
Иногда приложение, возможно, должно применить эти подсказки на совместно используемой Графике только временно, восстанавливая предыдущие значения после того, как они были применены к тексту, представляющему операции. Следующий пример кода показывает один способ сделать это.
/**
* Get rendering hints from a Graphics instance.
* "hintsToSave" is a Map of RenderingHint key-values.
* For each hint key present in that map, the value of that
* hint is obtained from the Graphics and stored as the value
* for the key in savedHints.
*/
RenderingHints getRenderingHints(Graphics2D g2d,
RenderingHints hintsToSave,
RenderingHints savedHints) {
if (savedHints == null) {
savedHints = new RenderingHints(null);
} else {
savedHints.clear();
}
if (hintsToSave.size() == 0) {
return savedHints;
}
/* RenderingHints.keySet() returns Set