Класс 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). Если документ содержал какие-либо данные, они будут сначала удалены.
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- атрибуты
ИзменениеУдаления
protected void removeUpdate(AbstractDocument.DefaultDocumentEvent chng)
Обновляет структуру документа в результате удаления текста.
- Переопределяет:
-
removeUpdateв классеAbstractDocument - Параметры:
-
chng- описание изменения документа
СоздатьКорневойЭлемент
protected AbstractDocument.AbstractElement createDefaultRoot()
Создаёт корневой элемент, используемый для представления стандартной структуры документа.
- Возвращает:
- базовый элемент
ПолучитьЦветПереднегоПлана
public Color getForeground(AttributeSet attr)
Получает цвет переднего плана из набора атрибутов.
- Определено в:
-
getForegroundв интерфейсеStyledDocument - Параметры:
-
attr- набор атрибутов - Возвращает:
- цвет
ПолучитьЦветФоновогоПлана
public Color getBackground(AttributeSet attr)
Получает цвет фона из набора атрибутов.
- Определено в:
-
getBackgroundв интерфейсеStyledDocument - Параметры:
-
attr- набор атрибутов - Возвращает:
- цвет
ПолучитьШрифт
public Font getFont(AttributeSet attr)
Получает шрифт из набора атрибутов.
- Определено в:
-
getFontв интерфейсеStyledDocument - Параметры:
-
attr- набор атрибутов - Возвращает:
- шрифт
ИзмененСтиль
protected void styleChanged(Style style)
Вызывается, когда любой из стилей этого документа был изменён. Подклассы могут захотеть разумно обработать повреждения.
- Параметры:
-
style- Стиль, который был изменён.
ДобавитьСлушателяИзмененийДокумента
public void addDocumentListener(DocumentListener listener)
Добавляет слушателя изменений документа для получения уведомлений о любых изменениях.
- Определено в:
-
addDocumentListenerв интерфейсеDocument - Переопределяет:
-
addDocumentListenerв классеAbstractDocument - Параметры:
-
listener- слушатель - См. также:
Document.addDocumentListener(javax.swing.event.DocumentListener)
УдалитьСлушателяИзмененийДокумента
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.