Spec-Zone .ru
спецификации, руководства, описания, API
|
Toolkit.getDesktopProperty
метод. Каждое настольное свойство называет уникальная строка, которая является "именем" того свойства.
Настольные свойства, поддерживаемые AWT, но не задокументированный в другом месте - обычно, потому что нет никакого подходящего метода или класса - документируются здесь.
Настольные свойства, задокументированные в другом месте, являются теми, которые сильно связываются с методом или классом, который документирует их.
Так как настольные свойства абстрагируют базовую установку платформы, они, возможно, не доступны в средах, которые не поддерживают их. Когда настольное свойство недоступно по любой причине, реализация возвратится null
.
Следующая таблица суммирует настольные свойства, задокументированные здесь, и их типы значения.
Имя свойства | Тип значения | Сводное Описание |
---|---|---|
awt.font.desktophints | java.util. Карта | Сглаживание шрифта (текстовое сглаживание) настройки. |
sun.awt.enableExtraMouseButtons | java.lang. Булевская переменная | Средства управления, если события от нажатия мыши от дополнительных кнопок должны быть сгенерированы или нет |
Современные рабочие столы поддерживают различные формы текстового сглаживания (сглаживание шрифта).
Они применяются специфичными для платформы тяжелыми компонентами. Однако приложение может хотеть представить текст, используя тот же самый текст, сглаживающийся на поверхности рисунка или легком весе (неплатформа) компонентное использование Graphics2D
методы. Это особенно важно, создавая компоненты Swing, которые обязаны казаться непротиворечивыми с собственными настольными компонентами или другими компонентами Swing.
RenderingHints
которому можно непосредственно примениться к a Graphics2D
. Это - a Map
поскольку больше чем одна подсказка может быть необходима. Если ненуль этому можно непосредственно примениться к Graphics2D
.
Toolkit tk = Toolkit.getDefaultToolkit();
Map map = (Map)(tk.getDesktopProperty("awt.font.desktophints"));
if (map != null) {
graphics2D.addRenderingHints(map);
}
Приложение может прислушаться к изменениям в свойстве, используя a
PropertyChangeListener
:
tk.addPropertyChangeListener("awt.font.desktophints", pcl);
Прислушивание к изменениям рекомендуется, поскольку пользователи, в редких случаях, могут реконфигурировать настольную среду, пока приложения работают в пути, который может влиять на выбор этих подсказок, и кроме того много настольных сред поддерживают динамическое реконфигурирование этих запускающих приложений, чтобы соответствовать новым настройкам. Нет никакого прямого способа обнаружить, ожидается ли динамическое реконфигурирование запущения приложений, но предположение по умолчанию должно быть то, что это ожидается, так как большинство современных настольных сред действительно обеспечивает эту возможность.
Текст всегда должен измеряться, используя то же самое 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
Map
Map
из RenderingHints
так, что каждый ключ является экземпляром RenderingHints.Key
и значение является юридическим значением для того ключа.
Graphics2D
. Если карта не содержала значение по умолчанию, то addRenderingHints(Map)
оставил бы предыдущую подсказку, которая, возможно, не соответствует настольной установке. Приложение может использовать setRenderingHints(Map)
чтобы повторно инициализировать все подсказки, но это влияло бы на несвязанные подсказки также.
"awt.font.desktophints" + "." + GraphicsDevice.getIDstring();
Приложение может также прислушаться к изменениям на этих свойствах.
Однако это - крайне маловероятная конфигурация, так помочь непринужденности разработки, если только единственная, установка всего рабочего стола будет поддерживаться, то запросы каждой из этих настроек для каждого устройства возвратят нуль. Так определить, есть ли настройки для каждого устройства, достаточно решить, что есть ненулевой возврат для любого экранного устройства, используя имя свойства для каждого устройства.
Это свойство определяет, позволяют ли событиям от дополнительных кнопок мыши (если они, существуют и включаются базовой операционной системой), быть обработанными и отправленными в {@code EventQueue}.
Значение могло быть изменено, передавая "sun.awt.enableExtraMouseButtons" значение свойства в java прежде, чем приложение запустится. Это могло быть сделано со следующей командой:
java -Dsun.awt.enableExtraMouseButtons=false ApplicationПосле того, как установленный на запуске приложения, невозможно изменить это значение после.