Spec-Zone.ru › OpenJDK 25

Класс StyleContext

java.lang.Object
javax.swing.text.StyleContext
Все реализуемые интерфейсы:
Serializable, AbstractDocument.AttributeContext
Прямые известные подклассы:
StyleSheet
public class StyleContext extends Object implements Serializable, AbstractDocument.AttributeContext
Пул стилей и связанных с ними ресурсов. Этот класс определяет время жизни группы ресурсов, выступая в качестве контейнера, содержащего кэши различных ресурсов, например шрифтов и цветов, повторно используемых различными определениями стилей. При необходимости этот пул можно использовать совместно несколькими документами, чтобы максимально повысить возможность совместного использования связанных ресурсов.

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

Предупреждение: Сериализованные объекты этого класса не будут совместимы с будущими версиями Swing. Текущая поддержка сериализации подходит для кратковременного хранения или RMI между приложениями, работающими с одной и той же версией Swing. Начиная с версии 1.4, поддержка долговременного хранения всех JavaBeans добавлена в пакет java.beans. См. XMLEncoder.

Краткое описание вложенных классов

Модификатор и тип Класс Описание
class  StyleContext.NamedStyle
Набор атрибутов, обычно используемый для представления стилей символов и абзацев.
class  StyleContext.SmallAttributeSet
Этот класс хранит небольшое количество атрибутов в массиве.

Краткое описание полей

Модификатор и тип Поле Описание
static final String DEFAULT_STYLE
Имя логического стиля по умолчанию, применяемого к абзацам.

Краткое описание конструкторов

Конструктор Описание
StyleContext()
Создаёт новый объект StyleContext.

Краткое описание методов

Модификатор и тип Метод Описание
AttributeSet addAttribute(AttributeSet old, Object name, Object value)
Добавляет атрибут в указанный набор и возвращает новый репрезентативный набор.
AttributeSet addAttributes(AttributeSet old, AttributeSet attr)
Добавляет набор атрибутов элементу.
void addChangeListener(ChangeListener l)
Добавляет слушатель для отслеживания добавления и удаления стилей.
Style addStyle(String nm, Style parent)
Добавляет новый стиль в иерархию стилей.
protected MutableAttributeSet createLargeAttributeSet(AttributeSet a)
Создаёт большой набор атрибутов, оптимизирующий время за счёт объёма памяти.
protected StyleContext.SmallAttributeSet createSmallAttributeSet(AttributeSet a)
Создаёт компактный набор атрибутов, который может использоваться совместно.
Color getBackground(AttributeSet attr)
Преобразует набор атрибутов в спецификацию цвета фона.
ChangeListener[] getChangeListeners()
Возвращает массив всех ChangeListenerов, добавленных в этот StyleContext с помощью addChangeListener().
protected int getCompressionThreshold()
Возвращает максимальное количество пар «ключ/значение», которые следует попытаться сжать в уникальные/неизменяемые наборы.
static final StyleContext getDefaultStyleContext()
Возвращает контекст AttributeContext по умолчанию, общий для всех документов, которые не определяют и не предоставляют собственный контекст.
AttributeSet getEmptySet()
Возвращает пустой AttributeSet.
Font getFont(String family, int style, int size)
Возвращает новый шрифт.
Font getFont(AttributeSet attr)
Получает шрифт из набора атрибутов.
FontMetrics getFontMetrics(Font f)
Возвращает метрики шрифта.
Color getForeground(AttributeSet attr)
Преобразует набор атрибутов в спецификацию цвета переднего плана.
static Object getStaticAttribute(Object key)
Возвращает объект, ранее зарегистрированный с помощью registerStaticAttributeKey.
static Object getStaticAttributeKey(Object key)
Возвращает строку, с которой будет зарегистрирован key.
Style getStyle(String nm)
Получает именованный стиль, ранее добавленный в документ
Enumeration<?> getStyleNames()
Получает имена определённых стилей.
void readAttributes(ObjectInputStream in, MutableAttributeSet a)
Обработка чтения атрибутов, зависящая от контекста
static void readAttributeSet(ObjectInputStream in, MutableAttributeSet a)
Читает набор атрибутов из указанного входного потока объектов, ранее записанный с помощью writeAttributeSet.
void reclaim(AttributeSet a)
Возвращает набор, который больше не нужен реализации MutableAttributeSet.
static void registerStaticAttributeKey(Object key)
Регистрирует объект как статический объект, используемый в качестве ключа в наборах атрибутов.
AttributeSet removeAttribute(AttributeSet old, Object name)
Удаляет атрибут из набора.
AttributeSet removeAttributes(AttributeSet old, Enumeration<?> names)
Удаляет набор атрибутов элемента.
AttributeSet removeAttributes(AttributeSet old, AttributeSet attrs)
Удаляет набор атрибутов элемента.
void removeChangeListener(ChangeListener l)
Удаляет слушатель, отслеживавший добавление и удаление стилей.
void removeStyle(String nm)
Удаляет именованный стиль, ранее добавленный в документ.
String toString()
Преобразует StyleContext в строку.
void writeAttributes(ObjectOutputStream out, AttributeSet a)
Обработка записи атрибутов, зависящая от контекста
static void writeAttributeSet(ObjectOutputStream out, AttributeSet a)
Записывает набор атрибутов в указанный поток объектов для сериализации.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

Подробное описание полей

DEFAULT_STYLE

public static final String DEFAULT_STYLE
Имя логического стиля по умолчанию, применяемого к абзацам.
См. также:
  • Значения констант полей

Подробное описание конструкторов

StyleContext

public StyleContext()
Создаёт новый объект StyleContext.

Подробное описание методов

getDefaultStyleContext

public static final StyleContext getDefaultStyleContext()
Возвращает контекст AttributeContext по умолчанию, общий для всех документов, которые не определяют и не предоставляют собственный контекст.
Возвращает:
контекст

addStyle

public Style addStyle(String nm, Style parent)
Добавляет новый стиль в иерархию стилей. Атрибуты стиля разрешаются снизу вверх, поэтому атрибут, указанный в дочернем стиле, переопределяет атрибут, указанный в родительском стиле.
Параметры:
nm — имя стиля (должно быть уникальным среди именованных стилей документа). Имя может быть null, если стиль не имеет имени, однако вызывающий код отвечает за управление возвращённой ссылкой, поскольку получить безымянный стиль по имени нельзя. Безымянный стиль может быть полезен, например, для переопределения атрибутов символов, как в фрагменте текста, оформленном стилем.
parent — родительский стиль. Может быть null, если атрибуты, не заданные в стиле, не требуется разрешать с помощью другого стиля.
Возвращает:
созданный стиль

removeStyle

public void removeStyle(String nm)
Удаляет именованный стиль, ранее добавленный в документ.
Параметры:
nm — имя удаляемого стиля

getStyle

public Style getStyle(String nm)
Получает именованный стиль, ранее добавленный в документ
Параметры:
nm — имя стиля
Возвращает:
стиль

getStyleNames

public Enumeration<?> getStyleNames()
Получает имена определённых стилей.
Возвращает:
список имён в виде перечисления

addChangeListener

public void addChangeListener(ChangeListener l)
Добавляет слушатель для отслеживания добавления и удаления стилей.
Параметры:
l — слушатель изменений

removeChangeListener

public void removeChangeListener(ChangeListener l)
Удаляет слушатель, отслеживавший добавление и удаление стилей.
Параметры:
l — слушатель изменений

getChangeListeners

public ChangeListener[] getChangeListeners()
Возвращает массив всех ChangeListenerов, добавленных в этот StyleContext с помощью addChangeListener().
Возвращает:
все добавленные ChangeListenerы или пустой массив, если слушатели не добавлялись
Начиная с версии:
1.4

getFont

public Font getFont(AttributeSet attr)
Получает шрифт из набора атрибутов. Реализация пытается получить кэшированный шрифт для указанного AttributeSet; если это не удаётся, определяются параметры шрифта, после чего шрифт извлекается из низкоуровневого кэша шрифтов.
Параметры:
attr — набор атрибутов
Возвращает:
шрифт

getForeground

public Color getForeground(AttributeSet attr)
Преобразует набор атрибутов в спецификацию цвета переднего плана. Это можно использовать для указания таких свойств, как яркость, насыщенность и т. п. По умолчанию метод просто возвращает значение, указанное атрибутом StyleConstants.Foreground.
Параметры:
attr — набор атрибутов
Возвращает:
цвет

getBackground

public Color getBackground(AttributeSet attr)
Преобразует набор атрибутов в спецификацию цвета фона. Это можно использовать для указания таких свойств, как яркость, насыщенность и т. п. По умолчанию метод просто возвращает значение, указанное атрибутом StyleConstants.Background.
Параметры:
attr — набор атрибутов
Возвращает:
цвет

getFont

public Font getFont(String family, int style, int size)
Возвращает новый шрифт. Если в кэше есть кэшированный шрифт, метод возвращает его. В противном случае шрифт добавляется в кэш. По сути, это низкоуровневый кэш параметров шрифтов версии 1.1.
Параметры:
family — семейство шрифтов (например, "Monospaced")
style — начертание шрифта (например, Font.PLAIN)
size — размер в пунктах >= 1
Возвращает:
новый шрифт

getFontMetrics

public FontMetrics getFontMetrics(Font f)
Возвращает метрики шрифта.
Параметры:
f — шрифт
Возвращает:
метрики

addAttribute

public AttributeSet addAttribute(AttributeSet old, Object name, Object value)
Добавляет атрибут в указанный набор и возвращает новый репрезентативный набор.

Этот метод является потокобезопасным, хотя большинство методов Swing таковыми не являются. Подробнее см. в разделе Параллельность в Swing.

Определено в:
addAttribute в интерфейсе AbstractDocument.AttributeContext
Параметры:
old — исходный набор атрибутов
name — имя атрибута, не равное null
value — значение атрибута
Возвращает:
обновлённый набор атрибутов
См. также:
  • MutableAttributeSet.addAttribute(Object, Object)

addAttributes

public AttributeSet addAttributes(AttributeSet old, AttributeSet attr)
Добавляет набор атрибутов элементу.

Этот метод является потокобезопасным, хотя большинство методов Swing таковыми не являются. Подробнее см. в разделе Параллельность в Swing.

Определено в:
addAttributes в интерфейсе AbstractDocument.AttributeContext
Параметры:
old — исходный набор атрибутов
attr — добавляемые атрибуты
Возвращает:
обновлённый набор атрибутов
См. также:
  • MutableAttributeSet.addAttribute(Object, Object)

removeAttribute

public AttributeSet removeAttribute(AttributeSet old, Object name)
Удаляет атрибут из набора.

Этот метод является потокобезопасным, хотя большинство методов Swing таковыми не являются. Подробнее см. в разделе Параллельность в Swing.

Определено в:
removeAttribute в интерфейсе AbstractDocument.AttributeContext
Параметры:
old — исходный набор атрибутов
name — имя атрибута, не равное null
Возвращает:
обновлённый набор атрибутов
См. также:
  • MutableAttributeSet.removeAttribute(Object)

removeAttributes

public AttributeSet removeAttributes(AttributeSet old, Enumeration<?> names)
Удаляет набор атрибутов элемента.

Этот метод является потокобезопасным, хотя большинство методов Swing таковыми не являются. Подробнее см. в разделе Параллельность в Swing.

Определено в:
removeAttributes в интерфейсе AbstractDocument.AttributeContext
Параметры:
old — исходный набор атрибутов
names — имена атрибутов
Возвращает:
обновлённый набор атрибутов
См. также:
  • MutableAttributeSet.removeAttributes(Enumeration)

removeAttributes

public AttributeSet removeAttributes(AttributeSet old, AttributeSet attrs)
Удаляет набор атрибутов элемента.

Этот метод является потокобезопасным, хотя большинство методов Swing таковыми не являются. Подробнее см. в разделе Параллельность в Swing.

Определено в:
removeAttributes в интерфейсе AbstractDocument.AttributeContext
Параметры:
old — исходный набор атрибутов
attrs — атрибуты
Возвращает:
обновлённый набор атрибутов
См. также:
  • MutableAttributeSet.removeAttributes(Enumeration)

getEmptySet

public AttributeSet getEmptySet()
Возвращает пустой AttributeSet.
Определено в:
getEmptySet в интерфейсе AbstractDocument.AttributeContext
Возвращает:
набор

reclaim

public void reclaim(AttributeSet a)
Возвращает набор, который больше не нужен реализации MutableAttributeSet. Это полезно для работы в версии 1.1, где отсутствуют слабые ссылки. Обычно этот метод вызывается методом finalize реализации MutableAttributeSet.

Этот метод является потокобезопасным, хотя большинство методов Swing таковыми не являются. Подробнее см. в разделе Параллельность в Swing.

Определено в:
reclaim в интерфейсе AbstractDocument.AttributeContext
Параметры:
a — набор, подлежащий возврату

getCompressionThreshold

protected int getCompressionThreshold()
Возвращает максимальное количество пар «ключ/значение», которые следует попытаться сжать в уникальные/неизменяемые наборы. Для наборов, превышающих этот предел, будут использоваться хеш-таблицы и MutableAttributeSet.
Возвращает:
пороговое значение

createSmallAttributeSet

protected StyleContext.SmallAttributeSet createSmallAttributeSet(AttributeSet a)
Создаёт компактный набор атрибутов, который может использоваться совместно. Этот метод предназначен для переопределения подклассами, изменяющими поведение SmallAttributeSet. Его можно переопределить, чтобы возвращать AttributeSet, обеспечивающий преобразование атрибутов определённого типа.
Параметры:
a — набор атрибутов, который нужно представить в компактной форме.
Возвращает:
компактный набор атрибутов, который может использоваться совместно

createLargeAttributeSet

protected MutableAttributeSet createLargeAttributeSet(AttributeSet a)
Создаёт большой набор атрибутов, оптимизирующий время за счёт объёма памяти. Этот набор не будет использоваться совместно. Метод предназначен для переопределения подклассами, изменяющими поведение формата хранения больших наборов атрибутов (по умолчанию используется SimpleAttributeSet). Его можно переопределить, чтобы возвращать MutableAttributeSet, обеспечивающий преобразование атрибутов определённого типа.
Параметры:
a — набор атрибутов, который нужно представить в расширенной форме.
Возвращает:
большой набор атрибутов, оптимизирующий время за счёт объёма памяти

toString

public String toString()
Преобразует StyleContext в строку.
Переопределяет:
toString в классе Object
Возвращает:
строка

writeAttributes

public void writeAttributes(ObjectOutputStream out, AttributeSet a) throws IOException
Обработка записи атрибутов, зависящая от контекста
Параметры:
out — выходной поток
a — набор атрибутов
Выбрасывает:
IOException — при любой ошибке ввода-вывода

readAttributes

public void readAttributes(ObjectInputStream in, MutableAttributeSet a) throws ClassNotFoundException, IOException
Обработка чтения атрибутов, зависящая от контекста
Параметры:
in — поток объектов, из которого считываются данные атрибутов.
a — набор атрибутов, в который помещаются определения атрибутов.
Выбрасывает:
ClassNotFoundException — передаётся выше по стеку, если возникает при чтении потока объектов.
IOException — передаётся выше по стеку, если возникает при чтении потока объектов.

writeAttributeSet

public static void writeAttributeSet(ObjectOutputStream out, AttributeSet a) throws IOException
Записывает набор атрибутов в указанный поток объектов для сериализации. Особое внимание уделяется статическим ключам атрибутов, зарегистрированным с помощью метода registerStaticAttributeKey. Все ключи атрибутов, не зарегистрированные как статические, сериализуются напрямую. Предполагается, что все значения являются сериализуемыми.
Параметры:
out — выходной поток
a — набор атрибутов
Выбрасывает:
IOException — при любой ошибке ввода-вывода

readAttributeSet

public static void readAttributeSet(ObjectInputStream in, MutableAttributeSet a) throws ClassNotFoundException, IOException
Считывает набор атрибутов из указанного входного потока объектов; ранее он был записан с помощью writeAttributeSet. Метод пытается восстановить статические объекты-ключи в виде статических объектов текущей виртуальной машины, учитывая только ключи, зарегистрированные методом registerStaticAttributeKey. Атрибуты, полученные из потока, помещаются в указанный изменяемый набор.
Параметры:
in — поток объектов, из которого считываются данные атрибутов.
a — набор атрибутов, в который помещаются определения атрибутов.
Выбрасывает:
ClassNotFoundException — передаётся выше по стеку, если возникает при чтении потока объектов.
IOException — передаётся выше по стеку, если возникает при чтении потока объектов.

registerStaticAttributeKey

public static void registerStaticAttributeKey(Object key)
Регистрирует объект как статический объект, используемый в качестве ключа в наборах атрибутов. Это позволяет обрабатывать ключ особым образом при сериализации.

Для работы в виртуальной машине версии 1.1 используется значение, возвращаемое методом toString, к которому добавляется имя класса. Возвращаемое методом toString значение не должно содержать ссылку на класс (то есть метод следует переопределить относительно определения в Object), чтобы оно оставалось неизменным при последующем вычислении.

Параметры:
key — ключ-объект, не равный null

getStaticAttribute

public static Object getStaticAttribute(Object key)
Возвращает объект, ранее зарегистрированный с помощью registerStaticAttributeKey.
Параметры:
key — ключ-объект
Возвращает:
объект, ранее зарегистрированный с помощью registerStaticAttributeKey

getStaticAttributeKey

public static Object getStaticAttributeKey(Object key)
Возвращает строку, с которой будет зарегистрирован key.
Параметры:
key — ключ-объект
Возвращает:
строку, с которой будет зарегистрирован key
См. также:
  • getStaticAttribute(Object)
  • registerStaticAttributeKey(Object)

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её дочерних компаний в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её дочерние компании, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/javax/swing/text/StyleContext.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API