Spec-Zone.ru › OpenJDK 27

Класс DefaultStyledDocument

java.lang.Object
javax.swing.text.AbstractDocument
javax.swing.text.DefaultStyledDocument
Все реализуемые интерфейсы:
Serializable, Document, StyledDocument
Прямые известные подклассы:
HTMLDocument
public class DefaultStyledDocument extends AbstractDocument implements StyledDocument
Документ, который можно размечать стилями символов и абзацев способом, похожим на Rich Text Format. Структура элементов этого документа представляет пересечения стилей для последовательностей стилей. Эти последовательности стилей сопоставляются со структурой элементов абзацев (которая может находиться в другой структуре). Последовательности стилей заканчиваются на границах абзацев, поскольку логические стили назначаются границам абзацев.

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

См. также:
  • Document
  • AbstractDocument

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

Модификатор и тип Класс Описание
static class  DefaultStyledDocument.AttributeUndoableEdit
UndoableEdit, используемый для сохранения изменений AttributeSet элемента.
class  DefaultStyledDocument.ElementBuffer
Класс для управления изменениями в иерархии элементов.
static class  DefaultStyledDocument.ElementSpec
Спецификация для построения элементов.
protected class  DefaultStyledDocument.SectionElement
Корневой элемент документа по умолчанию... описывает содержащиеся в нём абзацы/строки.

Вложенные классы/интерфейсы, объявленные в классе AbstractDocument

AbstractDocument.AbstractElement, AbstractDocument.AttributeContext, AbstractDocument.BranchElement, AbstractDocument.Content, AbstractDocument.DefaultDocumentEvent, AbstractDocument.ElementEdit, AbstractDocument.LeafElement
Модификатор и тип Класс Описание
class  AbstractDocument.AbstractElement
Реализует абстрактную часть элемента.
static interface  AbstractDocument.AttributeContext
Интерфейс, позволяющий реализациям MutableAttributeSet использовать подключаемые методы сжатия атрибутов.
class  AbstractDocument.BranchElement
Реализует составной элемент, содержащий другие элементы.
static interface  AbstractDocument.Content
Интерфейс для описания последовательности символьного содержимого, которое можно редактировать.
class  AbstractDocument.DefaultDocumentEvent
Сохраняет изменения документа по мере его изменения.
static class  AbstractDocument.ElementEdit
Реализация ElementChange, которую можно добавить в событие документа.
class  AbstractDocument.LeafElement
Реализует элемент, напрямую представляющий содержимое некоторого типа.

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

Модификатор и тип Поле Описание
protected DefaultStyledDocument.ElementBuffer buffer
Буфер элементов.
static final int BUFFER_SIZE_DEFAULT
Размер буфера исходного содержимого по умолчанию.

Поля, объявленные в классе AbstractDocument

BAD_LOCATION, BidiElementName, ContentElementName, ElementNameAttribute, listenerList, ParagraphElementName, SectionElementName
Модификатор и тип Поле Описание
protected static final String BAD_LOCATION
Сообщение об ошибке, указывающее на недопустимое местоположение.
static final String BidiElementName
Имя элементов, используемых для хранения однонаправленной последовательности
static final String ContentElementName
Имя элементов, используемых для представления содержимого
static final String ElementNameAttribute
Имя атрибута, используемого для указания имён элементов.
protected EventListenerList listenerList
Список прослушивателей событий документа.
static final String ParagraphElementName
Имя элементов, используемых для представления абзацев
static final String SectionElementName
Имя элементов, используемых для хранения секций (строк/абзацев).

Поля, объявленные в интерфейсе Document

StreamDescriptionProperty, TitleProperty
Модификатор и тип Поле Описание
static final String StreamDescriptionProperty
Имя свойства, содержащего описание потока, использованного для инициализации документа.
static final String TitleProperty
Имя свойства, содержащего заголовок документа, если он есть.

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

Конструктор Описание
DefaultStyledDocument()
Создаёт документ со стилями по умолчанию.
DefaultStyledDocument(AbstractDocument.Content c, StyleContext styles)
Создаёт документ со стилями.
DefaultStyledDocument(StyleContext styles)
Создаёт документ со стилями, используя реализацию хранилища содержимого по умолчанию и общий набор стилей.

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

Модификатор и тип Метод Описание
void addDocumentListener(DocumentListener listener)
Добавляет прослушиватель документа для уведомления о любых изменениях.
Style addStyle(String nm, Style parent)
Добавляет новый стиль в иерархию логических стилей.
protected void create(DefaultStyledDocument.ElementSpec[] data)
Инициализирует документ в соответствии с заданной структурой элементов (то есть структурой, возвращаемой методом getDefaultRootElement.
protected AbstractDocument.AbstractElement createDefaultRoot()
Создаёт корневой элемент, используемый для представления структуры документа по умолчанию.
Color getBackground(AttributeSet attr)
Получает цвет фона из набора атрибутов.
Element getCharacterElement(int pos)
Получает символьный элемент по позиции.
Element getDefaultRootElement()
Получает корневой элемент по умолчанию.
Font getFont(AttributeSet attr)
Получает шрифт из набора атрибутов.
Color getForeground(AttributeSet attr)
Получает цвет переднего плана из набора атрибутов.
Style getLogicalStyle(int p)
Получает логический стиль, назначенный абзацу, содержащему указанную позицию.
Element getParagraphElement(int pos)
Получает элемент абзаца со смещением pos.
Style getStyle(String nm)
Получает ранее добавленный именованный стиль.
Enumeration<?> getStyleNames()
Получает список имён стилей.
protected void insert(int offset, DefaultStyledDocument.ElementSpec[] data)
Вставляет новые элементы пакетно.
protected void insertUpdate(AbstractDocument.DefaultDocumentEvent chng, AttributeSet attr)
Обновляет структуру документа в результате вставки текста.
void removeDocumentListener(DocumentListener listener)
Удаляет прослушиватель документа.
void removeElement(Element elem)
Удаляет элемент из этого документа.
void removeStyle(String nm)
Удаляет из документа ранее добавленный именованный стиль.
protected void removeUpdate(AbstractDocument.DefaultDocumentEvent chng)
Обновляет структуру документа в результате удаления текста.
void setCharacterAttributes(int offset, int length, AttributeSet s, boolean replace)
Задаёт атрибуты для части документа.
void setLogicalStyle(int pos, Style s)
Задаёт логический стиль для абзаца в указанной позиции.
void setParagraphAttributes(int offset, int length, AttributeSet s, boolean replace)
Задаёт атрибуты абзаца.
protected void styleChanged(Style style)
Вызывается при изменении любого стиля этого документа.

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

addUndoableEditListener, createBranchElement, createLeafElement, createPosition, dump, fireChangedUpdate, fireInsertUpdate, fireRemoveUpdate, fireUndoableEditUpdate, getAsynchronousLoadPriority, getAttributeContext, getBidiRootElement, getContent, getCurrentWriter, getDocumentFilter, getDocumentListeners, getDocumentProperties, getEndPosition, getLength, getListeners, getProperty, getRootElements, getStartPosition, getText, getText, getUndoableEditListeners, insertString, postRemoveUpdate, putProperty, readLock, readUnlock, remove, removeUndoableEditListener, render, replace, setAsynchronousLoadPriority, setDocumentFilter, setDocumentProperties, writeLock, writeUnlock
Модификатор и тип Метод Описание
void addUndoableEditListener(UndoableEditListener listener)
Добавляет прослушиватель отмены изменений для уведомления о любых изменениях.
protected Element createBranchElement(Element parent, AttributeSet a)
Создаёт ветвевой элемент документа, который может содержать другие элементы.
protected Element createLeafElement(Element parent, AttributeSet a, int p0, int p1)
Создаёт листовой элемент документа.
Position createPosition(int offs)
Возвращает позицию, отслеживающую изменения документа.
void dump(PrintStream out)
Выводит диагностическую информацию.
protected void fireChangedUpdate(DocumentEvent e)
Уведомляет всех прослушивателей, зарегистрировавших интерес к уведомлениям о событиях этого типа.
protected void fireInsertUpdate(DocumentEvent e)
Уведомляет всех прослушивателей, зарегистрировавших интерес к уведомлениям о событиях этого типа.
protected void fireRemoveUpdate(DocumentEvent e)
Уведомляет всех прослушивателей, зарегистрировавших интерес к уведомлениям о событиях этого типа.
protected void fireUndoableEditUpdate(UndoableEditEvent e)
Уведомляет всех прослушивателей, зарегистрировавших интерес к уведомлениям о событиях этого типа.
int getAsynchronousLoadPriority()
Получает приоритет асинхронной загрузки.
protected final AbstractDocument.AttributeContext getAttributeContext()
Получает контекст для управления атрибутами.
Element getBidiRootElement()
Возвращает корневой элемент двунаправленной структуры этого документа.
protected final AbstractDocument.Content getContent()
Получает содержимое документа.
protected final Thread getCurrentWriter()
Получает текущий поток записи, если он существует.
DocumentFilter getDocumentFilter()
Возвращает DocumentFilter, отвечающий за фильтрацию вставки и удаления.
DocumentListener[] getDocumentListeners()
Возвращает массив всех прослушивателей документа, зарегистрированных в этом документе.
Dictionary<Object,Object> getDocumentProperties()
Обеспечивает управление набором свойств.
final Position getEndPosition()
Возвращает позицию, соответствующую концу документа.
int getLength()
Возвращает длину данных.
<T extends EventListener>
T[]
getListeners(Class<T> listenerType)
Возвращает массив всех объектов, зарегистрированных в этом документе как FooListeners.
final Object getProperty(Object key)
Вспомогательный метод для получения значения свойства.
Element[] getRootElements()
Получает все определённые корневые элементы.
final Position getStartPosition()
Возвращает позицию, соответствующую началу документа.
String getText(int offset, int length)
Получает последовательность текста из документа.
void getText(int offset, int length, Segment txt)
Получает текст, содержащийся в указанной части документа.
UndoableEditListener[] getUndoableEditListeners()
Возвращает массив всех прослушивателей отменяемых изменений, зарегистрированных в этом документе.
void insertString(int offs, String str, AttributeSet a)
Вставляет содержимое в документ.
protected void postRemoveUpdate(AbstractDocument.DefaultDocumentEvent chng)
Обновляет структуру документа в результате удаления текста.
final void putProperty(Object key, Object value)
Вспомогательный метод для сохранения значения свойства.
final void readLock()
Захватывает блокировку, чтобы начать чтение состояния документа.
final void readUnlock()
Снимает блокировку чтения.
void remove(int offs, int len)
Удаляет содержимое из документа.
void removeUndoableEditListener(UndoableEditListener listener)
Удаляет прослушиватель отмены изменений.
void render(Runnable r)
Позволяет безопасно отображать модель при параллельном выполнении, если модель поддерживает асинхронное обновление.
void replace(int offset, int length, String text, AttributeSet attrs)
Удаляет область текста от offset до offset + length и заменяет её на text.
void setAsynchronousLoadPriority(int p)
Задаёт приоритет асинхронной загрузки.
void setDocumentFilter(DocumentFilter filter)
Задаёт DocumentFilter.
void setDocumentProperties(Dictionary<Object,Object> x)
Заменяет словарь свойств этого документа.
protected final void writeLock()
Захватывает блокировку, чтобы начать изменение защищаемого ею документа.
protected final void writeUnlock()
Освобождает блокировку записи, ранее полученную с помощью writeLock.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Показывает, равен ли этот объект другому объекту.
protected void finalize()
Устарело, планируется удаление: этот элемент API планируется удалить в будущей версии.
Метод завершения устарел и планируется к удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного времени.

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

BUFFER_SIZE_DEFAULT

public static final int BUFFER_SIZE_DEFAULT
Размер буфера содержимого по умолчанию.
См. также:
  • Значения константных полей

buffer

protected DefaultStyledDocument.ElementBuffer buffer
Буфер элементов.

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

DefaultStyledDocument

public DefaultStyledDocument(AbstractDocument.Content c, StyleContext styles)
Создает документ со стилями.
Параметры:
c — контейнер для содержимого
styles — ресурсы и определения стилей, которые могут совместно использоваться документами

DefaultStyledDocument

public DefaultStyledDocument(StyleContext styles)
Создает документ со стилями, используя реализацию хранилища содержимого по умолчанию и общий набор стилей.
Параметры:
styles — стили

DefaultStyledDocument

public DefaultStyledDocument()
Создает документ со стилями по умолчанию. Буферизует входное содержимое размером BUFFER_SIZE_DEFAULT и использует контекст стилей, время существования которого ограничено временем существования документа и который не используется совместно с другими документами.

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

getDefaultRootElement

public Element getDefaultRootElement()
Возвращает корневой элемент по умолчанию.
Определено в:
getDefaultRootElement в интерфейсе Document
Определено в:
getDefaultRootElement в классе AbstractDocument
Возвращает:
корневой элемент
См. также:
  • Document.getDefaultRootElement()

create

protected void create(DefaultStyledDocument.ElementSpec[] data)
Инициализирует документ, чтобы он соответствовал заданной структуре элементов (то есть структуре, возвращаемой методом getDefaultRootElement). Если документ содержит данные, они сначала будут удалены.
Параметры:
data — данные элементов

insert

protected void insert(int offset, DefaultStyledDocument.ElementSpec[] data) throws BadLocationException
Вставляет несколько новых элементов за один раз. Это позволяет выполнять синтаксический анализ при разблокированном документе и подготовить изменение структуры элементов. Метод принимает массив токенов, описывающих порядок обновления структуры элементов, что позволяет значительно сократить время удержания блокировки на запись при асинхронном обновлении.

Этот метод потокобезопасен, хотя большинство методов Swing — нет. Дополнительные сведения см. в разделе Многопоточность в Swing.

Параметры:
offset — начальное смещение >= 0
data — данные элементов
Исключения:
BadLocationException — если начальное смещение недопустимо

removeElement

public void removeElement(Element elem)
Удаляет элемент из этого документа.

Элемент удаляется из родительского элемента, а также удаляется текст в диапазоне, определяемом этим элементом. Если элемент не связан с документом, выбрасывается IllegalArgumentException.

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

Удаление элемента вызывает два события: DocumentEvent — при изменении структуры элементов и UndoableEditEvent — при изменении содержимого документа.

Если элемент содержит маркер конца содержимого (последний символ "\n" в документе), этот символ не удаляется; вместо этого предыдущий листовой элемент расширяется, чтобы включить этот символ. Если последний листовой элемент уже заканчивается на "\n",, он включается в удаляемое содержимое.

Если элемент является null,, выбрасывается NullPointerException. Если после удаления структура элементов станет недопустимой, например если элемент является корневым элементом документа, выбрасывается IllegalArgumentException. Если текущая структура элементов недопустима, выбрасывается IllegalStateException.

Параметры:
elem — удаляемый элемент
Исключения:
NullPointerException — если элемент является null
IllegalArgumentException — если элемент не удалось удалить
IllegalStateException — если структура элементов недопустима
С версии:
1.7

addStyle

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

removeStyle

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

getStyle

public Style getStyle(String nm)
Возвращает ранее добавленный именованный стиль.
Определено в:
getStyle в интерфейсе StyledDocument
Параметры:
nm — имя стиля
Возвращает:
стиль

getStyleNames

public Enumeration<?> getStyleNames()
Возвращает список имен стилей.
Возвращает:
все имена стилей

setLogicalStyle

public void setLogicalStyle(int pos, Style s)
Задает логический стиль для абзаца в указанной позиции. Если атрибуты символов и абзаца явно не заданы, они разрешаются с помощью логического стиля, назначенного абзацу; этот стиль, в свою очередь, может разрешаться через иерархию, совершенно независимую от иерархии элементов документа.

Этот метод потокобезопасен, хотя большинство методов Swing — нет. Дополнительные сведения см. в разделе Многопоточность в Swing.

Определено в:
setLogicalStyle в интерфейсе StyledDocument
Параметры:
pos — смещение от начала документа >= 0
s — логический стиль, назначаемый абзацу; null, если стиль не назначается

getLogicalStyle

public Style getLogicalStyle(int p)
Возвращает логический стиль, назначенный абзацу, соответствующему указанной позиции.
Определено в:
getLogicalStyle в интерфейсе StyledDocument
Параметры:
p — положение, которое требуется преобразовать в абзац, чтобы определить назначенный логический стиль >= 0. Это смещение от начала документа.
Возвращает:
стиль или null, если стиль не назначен

setCharacterAttributes

public void setCharacterAttributes(int offset, int length, AttributeSet s, boolean replace)
Задает атрибуты для части документа. Во время внесения изменений эта операция удерживает блокировку на запись; после успешного завершения изменения слушателям отправляется DocumentEvent.

offset и length определяют диапазон текста, для которого задаются атрибуты. Если длина меньше или равна 0, действие не выполняется и метод просто возвращает управление. Если смещение меньше или равно 0 либо превышает длину текста, действие не выполняется и метод просто возвращает управление. В противном случае, если offset + length превышает длину текста, затрагиваемый диапазон усекается.

Этот метод потокобезопасен, хотя большинство методов Swing — нет. Дополнительные сведения см. в разделе Многопоточность в Swing.

Определено в:
setCharacterAttributes в интерфейсе StyledDocument
Параметры:
offset — смещение в документе >= 0
length — длина > 0
s — атрибуты
replace — true, если перед заданием новых атрибутов необходимо заменить предыдущие

setParagraphAttributes

public void setParagraphAttributes(int offset, int length, AttributeSet s, boolean replace)
Задает атрибуты абзаца.

Этот метод потокобезопасен, хотя большинство методов Swing — нет. Дополнительные сведения см. в разделе Многопоточность в Swing.

Определено в:
setParagraphAttributes в интерфейсе StyledDocument
Параметры:
offset — смещение в абзаце >= 0
length — количество затрагиваемых символов >= 0
s — атрибуты
replace — указывает, нужно ли заменить существующие атрибуты или объединить их с новыми

getParagraphElement

public Element getParagraphElement(int pos)
Возвращает элемент абзаца в смещении pos. Абзац состоит как минимум из одного дочернего элемента Element, обычно листового.
Определено в:
getParagraphElement в интерфейсе StyledDocument
Определено в:
getParagraphElement в классе AbstractDocument
Параметры:
pos — начальное смещение >= 0
Возвращает:
элемент

getCharacterElement

public Element getCharacterElement(int pos)
Возвращает элемент символа в указанной позиции.
Определено в:
getCharacterElement в интерфейсе StyledDocument
Параметры:
pos — позиция в документе >= 0
Возвращает:
элемент

insertUpdate

protected void insertUpdate(AbstractDocument.DefaultDocumentEvent chng, AttributeSet attr)
Обновляет структуру документа в результате вставки текста. Операция выполняется при заблокированной записи. Эта реализация просто анализирует вставленное содержимое на наличие разрывов строк и формирует набор инструкций для буфера элементов.
Переопределяет:
insertUpdate в классе AbstractDocument
Параметры:
chng — описание изменения документа
attr — атрибуты

removeUpdate

protected void removeUpdate(AbstractDocument.DefaultDocumentEvent chng)
Обновляет структуру документа в результате удаления текста.
Переопределяет:
removeUpdate в классе AbstractDocument
Параметры:
chng — описание изменения документа

createDefaultRoot

protected AbstractDocument.AbstractElement createDefaultRoot()
Создает корневой элемент для представления структуры документа по умолчанию.
Возвращает:
основной элемент

getForeground

public Color getForeground(AttributeSet attr)
Возвращает цвет переднего плана из набора атрибутов.
Определено в:
getForeground в интерфейсе StyledDocument
Параметры:
attr — набор атрибутов
Возвращает:
цвет

getBackground

public Color getBackground(AttributeSet attr)
Возвращает цвет фона из набора атрибутов.
Определено в:
getBackground в интерфейсе StyledDocument
Параметры:
attr — набор атрибутов
Возвращает:
цвет

getFont

public Font getFont(AttributeSet attr)
Возвращает шрифт из набора атрибутов.
Определено в:
getFont в интерфейсе StyledDocument
Параметры:
attr — набор атрибутов
Возвращает:
шрифт

styleChanged

protected void styleChanged(Style style)
Вызывается при изменении любого из стилей этого документа. Подклассы могут реализовать интеллектуальную обработку затрагиваемых областей.
Параметры:
style — изменившийся стиль.

addDocumentListener

public void addDocumentListener(DocumentListener listener)
Добавляет слушателя документа для получения уведомлений о любых изменениях.
Определено в:
addDocumentListener в интерфейсе Document
Переопределяет:
addDocumentListener в классе AbstractDocument
Параметры:
listener — слушатель
См. также:
  • Document.addDocumentListener(DocumentListener)

removeDocumentListener

public void removeDocumentListener(DocumentListener listener)
Удаляет слушателя документа.
Определено в:
removeDocumentListener в интерфейсе Document
Переопределяет:
removeDocumentListener в классе AbstractDocument
Параметры:
listener — слушатель
См. также:
  • Document.removeDocumentListener(DocumentListener)

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, где приведены более подробные описания для разработчиков, включая обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, 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.

Spec-Zone.ru

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