Класс 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, добавлена поддержка долговременного хранения всех JavaBeans™ в пакете java.beans. Пожалуйста, обратитесь к XMLEncoder.
- См. также:
-
Document,AbstractDocument, Сериализованная форма
Вложенные классы
| Модификатор и тип | Класс | Описание |
|---|---|---|
static class | DefaultStyledDocument.AttributeUndoableEdit | UndoableEdit, используемый для запоминания изменений AttributeSet для элемента. |
class | DefaultStyledDocument.ElementBuffer | Класс для управления изменениями в иерархии элементов. |
static class | DefaultStyledDocument.ElementSpec | Спецификация для построения элементов. |
protected class | DefaultStyledDocument.SectionElement | Корневой элемент по умолчанию для документа... отображает абзацы/строки, содержащиеся в нём. |
Вложенные классы/интерфейсы, объявленные в классе javax.swing.text.AbstractDocument
AbstractDocument.AbstractElement, AbstractDocument.AttributeContext, AbstractDocument.BranchElement, AbstractDocument.Content, AbstractDocument.DefaultDocumentEvent, AbstractDocument.ElementEdit, AbstractDocument.LeafElement Поля
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected DefaultStyledDocument.ElementBuffer | buffer | Буфер элементов. |
static int | BUFFER_SIZE_DEFAULT | Размер буфера начального содержимого по умолчанию. |
Поля, объявленные в классе javax.swing.text.AbstractDocument
BAD_LOCATION, BidiElementName, ContentElementName, ElementNameAttribute, listenerList, ParagraphElementName, SectionElementName Поля, объявленные в интерфейсе javax.swing.text.Document
StreamDescriptionProperty, 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) | Инициализирует документ, отражая заданную структуру элементов (т. е. структуру, полученную методом |
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) | Получает элемент абзаца по смещению |
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) | Вызывается при изменении любого из стилей этого документа. |
Методы, объявленные в классе javax.swing.text.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 Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Методы, объявленные в интерфейсе javax.swing.text.Document
addUndoableEditListener, createPosition, getEndPosition, getLength, getProperty, getRootElements, getStartPosition, getText, getText, insertString, putProperty, remove, removeUndoableEditListener, render Поля
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 слушателям.
Этот метод потокобезопасен, хотя большинство методов 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. Абзац состоит как минимум из одного дочернего элемента, который обычно является листовым.
- Указано в:
-
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(javax.swing.event.DocumentListener)
removeDocumentListener
public void removeDocumentListener(DocumentListener listener)
Удаляет слушателя событий документа.
- Определено в:
-
removeDocumentListenerв интерфейсеDocument - Переопределяет:
-
removeDocumentListenerв классеAbstractDocument - Параметры:
-
listener- слушатель - См. также:
Document.removeDocumentListener(javax.swing.event.DocumentListener)
© 1993, 2020, 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/11/docs/api/java.desktop/javax/swing/text/DefaultStyledDocument.html