Spec-Zone.ru › OpenJDK 25

Класс AbstractDocument

java.lang.Object
javax.swing.text.AbstractDocument
Все реализованные интерфейсы:
Serializable, Document
Прямые известные подклассы:
DefaultStyledDocument, PlainDocument
public abstract class AbstractDocument extends Object implements Document, Serializable
Реализация интерфейса документа, служащая основой для реализации документов различных типов. На этом уровне предусмотрено очень мало правил, поэтому пользоваться классом сложнее.

Этот класс реализует механизм блокировки документа. Он допускает нескольких читателей или одного писателя; писатели должны ждать, пока все наблюдатели документа не получат уведомление о предыдущем изменении, прежде чем начинать новое изменение документа. Блокировка для чтения устанавливается и снимается с помощью метода render. Блокировка для записи устанавливается методами, изменяющими документ, и удерживается в течение всего вызова метода. Уведомление отправляется в потоке, выполнившем изменение, и на время отправки уведомления этому потоку предоставляется полный доступ к документу для чтения, тогда как остальные читатели не допускаются к нему, пока отправка уведомления не завершится. Уведомление представляет собой уведомление о событии Beans, которое не допускает дальнейших изменений до тех пор, пока уведомления не получат все слушатели.

Любые модели, являющиеся подклассами этого класса и используемые совместно с текстовым компонентом, реализация внешнего вида которого основана на BasicTextUI, можно безопасно обновлять асинхронно, поскольку BasicTextUI сериализует все обращения к иерархии View, если документ имеет тип AbstractDocument. Блокировка предполагает, что независимый поток будет обращаться к иерархии View только из методов DocumentListener и что одновременно будет активен только один поток событий.

Если требуется поддержка параллелизма, необходимо учитывать следующие дополнительные условия. Код любого класса, реализующего DocumentListener или UndoListener, должен быть потокобезопасным и не должен обращаться к блокировке компонента, если требуется избежать взаимоблокировок. Методы repaint и revalidate класса JComponent являются потокобезопасными.

AbstractDocument моделирует неявный разрыв в конце документа. Это, помимо прочего, позволяет установить каретку после последнего символа. Поэтому getLength возвращает значение на единицу меньше длины Content. Если вы создаёте собственный Content, не забудьте инициализировать его дополнительным символом. Примеры этого приведены в StringContent и GapContent. Ещё одно следствие этого состоит в том, что у элементов, моделирующих неявный конечный символ, значение endOffset будет равно (getLength() + 1). Например, в DefaultStyledDocument getParagraphElement(getLength()).getEndOffset() == getLength() + 1 .

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

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

Модификатор и тип Класс Описание
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 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

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

AbstractDocument(AbstractDocument.Content data)
AbstractDocument(AbstractDocument.Content data, AbstractDocument.AttributeContext context)
Модификатор Конструктор Описание
protected
Создаёт новый AbstractDocument, обёрнутый вокруг указанного механизма хранения содержимого.
protected
Создаёт новый AbstractDocument, обёрнутый вокруг указанного механизма хранения содержимого.

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

Модификатор и тип Метод Описание
void addDocumentListener(DocumentListener listener)
Добавляет слушателя документа для получения уведомлений обо всех изменениях.
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()
Возвращает текущий поток записи, если он существует.
abstract Element getDefaultRootElement()
Возвращает корневой элемент, на котором должны основываться представления, если не предоставлен иной механизм назначения представлений структурам элементов.
DocumentFilter getDocumentFilter()
Возвращает DocumentFilter, отвечающий за фильтрацию вставки и удаления.
DocumentListener[] getDocumentListeners()
Возвращает массив всех слушателей документа, зарегистрированных в этом документе.
Dictionary<Object,Object> getDocumentProperties()
Обеспечивает управление набором свойств.
final Position getEndPosition()
Возвращает позицию, соответствующую концу документа.
int getLength()
Возвращает длину данных.
<T extends EventListener>
T[]
getListeners(Class<T> listenerType)
Возвращает массив всех объектов, зарегистрированных в данный момент в качестве FooListener этого документа.
abstract Element getParagraphElement(int pos)
Возвращает элемент абзаца, содержащий указанную позицию.
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 insertUpdate(AbstractDocument.DefaultDocumentEvent chng, AttributeSet attr)
Обновляет структуру документа в результате вставки текста.
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 removeDocumentListener(DocumentListener listener)
Удаляет слушателя документа.
void removeUndoableEditListener(UndoableEditListener listener)
Удаляет слушателя отмены изменений.
protected void removeUpdate(AbstractDocument.DefaultDocumentEvent chng)
Обновляет структуру документа в результате удаления текста.
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

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

listenerList

protected EventListenerList listenerList
Список слушателей событий для документа.

BAD_LOCATION

protected static final String BAD_LOCATION
Сообщение об ошибке, указывающее на недопустимое расположение.
См. также:
  • Значения константных полей

ParagraphElementName

public static final String ParagraphElementName
Имя элементов, используемых для представления абзацев
См. также:
  • Значения константных полей

ContentElementName

public static final String ContentElementName
Имя элементов, используемых для представления содержимого
См. также:
  • Значения константных полей

SectionElementName

public static final String SectionElementName
Имя элементов, используемых для хранения разделов (строк/абзацев).
См. также:
  • Значения константных полей

BidiElementName

public static final String BidiElementName
Имя элементов, используемых для хранения однонаправленного фрагмента
См. также:
  • Значения константных полей

ElementNameAttribute

public static final String ElementNameAttribute
Имя атрибута, используемого для указания имён элементов.
См. также:
  • Значения константных полей

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

AbstractDocument

protected AbstractDocument(AbstractDocument.Content data)
Создаёт новый AbstractDocument, связанный с указанным механизмом хранения содержимого.
Параметры:
data — содержимое

AbstractDocument

protected AbstractDocument(AbstractDocument.Content data, AbstractDocument.AttributeContext context)
Создаёт новый AbstractDocument, связанный с указанным механизмом хранения содержимого.
Параметры:
data — содержимое
context — контекст атрибутов

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

getDocumentProperties

public Dictionary<Object,Object> getDocumentProperties()
Предоставляет средства управления набором свойств. Вызывающие стороны могут использовать словарь documentProperties для добавления к документу свойств, относящихся ко всему документу.
Возвращает:
не-null Dictionary
См. также:
  • setDocumentProperties(Dictionary)

setDocumentProperties

public void setDocumentProperties(Dictionary<Object,Object> x)
Заменяет словарь свойств этого документа.
Параметры:
x — новый словарь
См. также:
  • getDocumentProperties()

fireInsertUpdate

protected void fireInsertUpdate(DocumentEvent e)
Уведомляет всех слушателей, зарегистрировавших интерес к уведомлению о событиях этого типа. Экземпляр события создаётся по требованию с использованием параметров, переданных методу fire.
Параметры:
e — событие
См. также:
  • EventListenerList

fireChangedUpdate

protected void fireChangedUpdate(DocumentEvent e)
Уведомляет всех слушателей, зарегистрировавших интерес к уведомлению о событиях этого типа. Экземпляр события создаётся по требованию с использованием параметров, переданных методу fire.
Параметры:
e — событие
См. также:
  • EventListenerList

fireRemoveUpdate

protected void fireRemoveUpdate(DocumentEvent e)
Уведомляет всех слушателей, зарегистрировавших интерес к уведомлению о событиях этого типа. Экземпляр события создаётся по требованию с использованием параметров, переданных методу fire.
Параметры:
e — событие
См. также:
  • EventListenerList

fireUndoableEditUpdate

protected void fireUndoableEditUpdate(UndoableEditEvent e)
Уведомляет всех слушателей, зарегистрировавших интерес к уведомлению о событиях этого типа. Экземпляр события создаётся по требованию с использованием параметров, переданных методу fire.
Параметры:
e — событие
См. также:
  • EventListenerList

getListeners

public <T extends EventListener> T[] getListeners(Class<T> listenerType)
Возвращает массив всех объектов, зарегистрированных в данный момент в качестве слушателей FooListener этого документа. Слушатели FooListener регистрируются с помощью метода addFooListener.

В качестве аргумента listenerType можно указать литерал класса, например FooListener.class. Например, можно запросить слушателей документа d, выполнив следующий код:

DocumentListener[] mls = (DocumentListener[])(d.getListeners(DocumentListener.class));
Если таких слушателей нет, этот метод возвращает пустой массив.
Параметры типа:
T — тип слушателя
Параметры:
listenerType — тип запрашиваемых слушателей
Возвращает:
массив всех объектов, зарегистрированных в качестве слушателей FooListener этого компонента, или пустой массив, если такие слушатели не добавлены
Вызывает:
ClassCastException — если listenerType не указывает класс или интерфейс, реализующий java.util.EventListener
С версии:
1.3
См. также:
  • getDocumentListeners()
  • getUndoableEditListeners()

getAsynchronousLoadPriority

public int getAsynchronousLoadPriority()
Возвращает приоритет асинхронной загрузки. Если он меньше нуля, документ не следует загружать асинхронно.
Возвращает:
приоритет асинхронной загрузки или -1, если документ не следует загружать асинхронно

setAsynchronousLoadPriority

public void setAsynchronousLoadPriority(int p)
Задаёт приоритет асинхронной загрузки.
Параметры:
p — новый приоритет асинхронной загрузки; значение меньше нуля указывает, что документ не следует загружать асинхронно

setDocumentFilter

public void setDocumentFilter(DocumentFilter filter)
Задаёт DocumentFilter. DocumentFilter передаётся insert и remove для условного разрешения вставки/удаления текста. Значение null указывает, что фильтрация выполняться не будет.
Параметры:
filter — DocumentFilter, используемый для ограничения текста
С версии:
1.4
См. также:
  • getDocumentFilter()

getDocumentFilter

public DocumentFilter getDocumentFilter()
Возвращает DocumentFilter, отвечающий за фильтрацию вставки/удаления. Возвращаемое значение null означает, что фильтрация выполняться не будет.
Возвращает:
DocumentFilter
С версии:
1.4
См. также:
  • setDocumentFilter(DocumentFilter)

render

public void render(Runnable r)
Этот метод позволяет безопасно отображать модель при наличии конкурентного доступа, если модель поддерживает асинхронное обновление. Переданный объект Runnable будет выполнен таким образом, чтобы во время его выполнения он мог безопасно считывать модель без изменений. Сам объект Runnable не должен вносить никаких изменений.

Реализация захватывает блокировку чтения на время выполнения объекта Runnable. Одновременно могут выполняться несколько объектов Runnable, а все операции записи будут заблокированы, пока активны объекты Runnable, выполняющие отображение. Если объект Runnable выбрасывает исключение, его блокировка будет безопасно освобождена. Защита от объекта Runnable, который никогда не завершает выполнение, не предусмотрена; в этом случае документ фактически останется заблокированным на всё время своего существования.

Если переданный объект Runnable попытается внести изменения в этой реализации, возникнет взаимная блокировка. Отслеживание отдельных потоков отображения для обнаружения такой ситуации не ведётся, однако подкласс может понести дополнительные расходы на их отслеживание и выбрасывать ошибку.

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

Определено в:
render в интерфейсе Document
Параметры:
r — средство отображения для выполнения

getLength

public int getLength()
Возвращает длину данных. Это количество символов содержимого, представляющего данные пользователя.
Определено в:
getLength в интерфейсе Document
Возвращает:
длина >= 0
См. также:
  • Document.getLength()

addDocumentListener

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

removeDocumentListener

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

getDocumentListeners

public DocumentListener[] getDocumentListeners()
Возвращает массив всех слушателей документа, зарегистрированных для этого документа.
Возвращает:
все слушатели DocumentListener этого документа или пустой массив, если слушатели документа не зарегистрированы
С версии:
1.4
См. также:
  • addDocumentListener(DocumentListener)
  • removeDocumentListener(DocumentListener)

addUndoableEditListener

public void addUndoableEditListener(UndoableEditListener listener)
Добавляет слушателя отмены для получения уведомлений о любых изменениях. Операции отмены/повтора, выполняемые над UndoableEdit, приводят к генерации соответствующего DocumentEvent, чтобы представления оставались синхронизированными с моделью.
Определено в:
addUndoableEditListener в интерфейсе Document
Параметры:
listener — добавляемый UndoableEditListener
См. также:
  • Document.addUndoableEditListener(UndoableEditListener)

removeUndoableEditListener

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

getUndoableEditListeners

public UndoableEditListener[] getUndoableEditListeners()
Возвращает массив всех слушателей отменяемых изменений, зарегистрированных для этого документа.
Возвращает:
все слушатели UndoableEditListener этого документа или пустой массив, если слушатели отменяемых изменений не зарегистрированы
С версии:
1.4
См. также:
  • addUndoableEditListener(UndoableEditListener)
  • removeUndoableEditListener(UndoableEditListener)

getProperty

public final Object getProperty(Object key)
Удобный метод для получения значения свойства. Он эквивалентен следующему:
getDocumentProperties().get(key);
Определено в:
getProperty в интерфейсе Document
Параметры:
key — ключ свойства, не являющийся null
Возвращает:
значение этого свойства или null
См. также:
  • getDocumentProperties()

putProperty

public final void putProperty(Object key, Object value)
Удобный метод для сохранения значения свойства. Он эквивалентен следующему:
getDocumentProperties().put(key, value);
Если value равно null, этот метод удалит свойство.
Определено в:
putProperty в интерфейсе Document
Параметры:
key — ключ, не являющийся null
value — значение свойства
См. также:
  • getDocumentProperties()

remove

public void remove(int offs, int len) throws BadLocationException
Удаляет часть содержимого документа. Во время фактического внесения изменений при удалении содержимого удерживается блокировка записи. Наблюдатели получают уведомление об изменении в потоке, вызвавшем этот метод.

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

Определено в:
remove в интерфейсе Document
Параметры:
offs — начальное смещение >= 0
len — количество удаляемых символов >= 0
Вызывает:
BadLocationException — указанная позиция удаления не является допустимой позицией в документе
См. также:
  • Document.remove(int, int)

replace

public void replace(int offset, int length, String text, AttributeSet attrs) throws BadLocationException
Удаляет область текста от offset до offset + length и заменяет её на text. Способ реализации определяется конкретной реализацией: некоторые реализации могут рассматривать эту операцию как две отдельные операции — удаление с последующей вставкой, тогда как другие могут выполнять замену как одну атомарную операцию.
Параметры:
offset — индекс дочернего элемента
length — длина удаляемого текста; значение 0 означает, что ничего удалять не нужно
text — вставляемый текст; null означает, что текст вставлять не нужно
attrs — AttributeSet, задающий атрибуты вставляемого текста; значение null допустимо и обычно рассматривается как пустой набор атрибутов, однако точная интерпретация определяется подклассом
Вызывает:
BadLocationException — указанная позиция не является допустимой позицией в документе
С версии:
1.4

insertString

public void insertString(int offs, String str, AttributeSet a) throws BadLocationException
Вставляет содержимое в документ. Во время фактического внесения изменений при вставке содержимого удерживается блокировка записи, после чего наблюдатели уведомляются в потоке, получившем блокировку записи.

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

Определено в:
insertString в интерфейсе Document
Параметры:
offs — начальное смещение >= 0
str — вставляемая строка; если строка равна null или пуста, ничего не происходит
a — атрибуты вставляемого содержимого
Вызывает:
BadLocationException — указанная позиция вставки не является допустимой позицией в документе
См. также:
  • Document.insertString(int, String, AttributeSet)

getText

public String getText(int offset, int length) throws BadLocationException
Получает последовательность текста из документа.
Определено в:
getText в интерфейсе Document
Параметры:
offset — начальное смещение >= 0
length — количество извлекаемых символов >= 0
Возвращает:
текст
Вызывает:
BadLocationException — указанный диапазон включает позицию, которая не является допустимой позицией в документе
См. также:
  • Document.getText(int, int)

getText

public void getText(int offset, int length, Segment txt) throws BadLocationException
Извлекает текст, содержащийся в указанной части документа.

Если свойство partialReturn параметра txt имеет значение false, данные, возвращаемые в Segment, будут иметь всю запрошенную длину и могут быть копией или не быть ею — это зависит от способа хранения данных. Если свойство partialReturn имеет значение true, возвращается только тот объём текста, который можно вернуть без создания копии. Частичное возвращение обеспечивает более высокую производительность при сканировании больших частей документа. Ниже приведён пример использования частичного возвращения для доступа ко всему документу:

  int nleft = doc.getDocumentLength();
  Segment text = new Segment();
  int offs = 0;
  text.setPartialReturn(true);
  while (nleft > 0) {
      doc.getText(offs, nleft, text);
      // do something with text
      nleft -= text.count;
      offs += text.count;
  }
Определено в:
getText в интерфейсе Document
Параметры:
offset — начальное смещение >= 0
length — количество извлекаемых символов >= 0
txt — объект Segment, в который извлекается текст
Вызывает:
BadLocationException — указанный диапазон включает позицию, которая не является допустимой позицией в документе

createPosition

public Position createPosition(int offs) throws BadLocationException
Возвращает позицию, которая будет отслеживать изменения при редактировании документа.

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

Определено в:
createPosition в интерфейсе Document
Параметры:
offs — позиция в модели >= 0
Возвращает:
позиция
Вызывает:
BadLocationException — если указанная позиция не является допустимым расположением в связанном документе
См. также:
  • Document.createPosition(int)

getStartPosition

public final Position getStartPosition()
Возвращает позицию, обозначающую начало документа. Можно рассчитывать, что возвращённая позиция будет отслеживать изменения и останется в начале документа.
Определено в:
getStartPosition в интерфейсе Document
Возвращает:
позиция

getEndPosition

public final Position getEndPosition()
Возвращает позицию, обозначающую конец документа. Можно рассчитывать, что возвращённая позиция будет отслеживать изменения и останется в конце документа.
Определено в:
getEndPosition в интерфейсе Document
Возвращает:
позиция

getRootElements

public Element[] getRootElements()
Получает все определённые корневые элементы. Обычно корневой элемент только один, поэтому реализация по умолчанию возвращает корневой элемент по умолчанию.
Определено в:
getRootElements в интерфейсе Document
Возвращает:
корневой элемент

getDefaultRootElement

public abstract Element getDefaultRootElement()
Возвращает корневой элемент, на котором должны основываться представления, если не предусмотрен другой механизм сопоставления представлений со структурами элементов.
Определено в:
getDefaultRootElement в интерфейсе Document
Возвращает:
корневой элемент
См. также:
  • Document.getDefaultRootElement()

getBidiRootElement

public Element getBidiRootElement()
Возвращает корневой элемент двунаправленной структуры этого документа. Его дочерние элементы представляют последовательности символов с заданным уровнем двунаправленности Unicode.
Возвращает:
корневой элемент двунаправленной структуры этого документа

getParagraphElement

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

getAttributeContext

protected final AbstractDocument.AttributeContext getAttributeContext()
Получает контекст управления атрибутами. Этот метод фактически определяет стратегию сжатия информации AttributeSet.
Возвращает:
контекст

insertUpdate

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

removeUpdate

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

postRemoveUpdate

protected void postRemoveUpdate(AbstractDocument.DefaultDocumentEvent chng)
Обновляет структуру документа в результате удаления текста. Этот метод вызывается после удаления текста из содержимого. Это происходит в пределах блокировки на запись. Если подкласс этого класса переопределяет данный метод, он также должен вызывать метод суперкласса.
Параметры:
chng — описание изменения

dump

public void dump(PrintStream out)
Выводит диагностическую информацию.
Параметры:
out — выходной поток

getContent

protected final AbstractDocument.Content getContent()
Возвращает содержимое документа.
Возвращает:
содержимое

createLeafElement

protected Element createLeafElement(Element parent, AttributeSet a, int p0, int p1)
Создает листовой элемент документа. Точка расширения, через которую создаются элементы, представляющие структуру документа. Поскольку эта реализация хранит структуру и содержимое раздельно, элементы автоматически увеличиваются при расширении содержимого, вслед за чем разделяются существующие элементы. Документ сам определяет способ создания элементов, что позволяет гибко выбирать их тип.
Параметры:
parent — родительский элемент
a — атрибуты элемента
p0 — начало диапазона >= 0
p1 — конец диапазона >= p0
Возвращает:
новый элемент

createBranchElement

protected Element createBranchElement(Element parent, AttributeSet a)
Создает ветвевой элемент документа, который может содержать другие элементы.
Параметры:
parent — родительский элемент
a — атрибуты
Возвращает:
элемент

getCurrentWriter

protected final Thread getCurrentWriter()
Возвращает текущий поток записи, если он есть. Это позволяет определить, вызывается ли метод в рамках уже выполняемого изменения или необходимо получить блокировку и начать новую транзакцию.
Возвращает:
поток, активно изменяющий документ, или null, если изменения не выполняются

writeLock

protected final void writeLock()
Получает блокировку для начала изменения документа, защищаемого этой блокировкой. Для получения блокировки не должно выполняться запись, уведомление об изменениях или чтение. Кроме того, потоку разрешено получать более одной writeLock, если он не пытается получить дополнительные writeLock из уведомления документа. Попытка получить writeLock во время уведомления DocumentListener приведет к IllegalStateException. Возможность получать более одной writeLock для каждого потока позволяет подклассам получить блокировку на запись, выполнить несколько операций, а затем освободить блокировку.

Вызовы writeLock должны уравновешиваться вызовами writeUnlock, иначе Document останется заблокированным, и чтение или запись будут невозможны.

Выбрасывает:
IllegalStateException — выбрасывается при недопустимой попытке получить блокировку. Если документ реализован правильно, это может произойти только в том случае, если слушатель документа пытается изменить документ. Такая ситуация нарушает модель событий bean-компонентов, в которой порядок доставки не гарантируется и все слушатели должны быть уведомлены до того, как будут разрешены дальнейшие изменения.

writeUnlock

protected final void writeUnlock()
Освобождает блокировку на запись, ранее полученную с помощью writeLock. После уменьшения счетчика блокировок, если не осталось активных блокировок, доступ к документу будет разрешен новому потоку записи или потокам чтения.
См. также:
  • writeLock()

readLock

public final void readLock()
Получает блокировку для начала чтения состояния документа. Одновременно может работать несколько потоков чтения. Запись блокирует потоки чтения до завершения уведомления слушателей об изменении. Этот метод следует использовать с большой осторожностью, чтобы не нарушить целостность документа. Каждый вызов должен уравновешиваться вызовом readUnlock.
См. также:
  • readUnlock()

readUnlock

public final void readUnlock()
Освобождает блокировку чтения. Это означает, что один из потоков чтения завершил работу. Если других потоков чтения не осталось, можно снова начать запись. Вызов должен уравновешиваться вызовом readLock и выполняться в блоке finally, чтобы гарантировать соблюдение баланса. Ниже приведен пример.
    readLock();
    try {
        // do something
    } finally {
        readUnlock();
    }
См. также:
  • readLock()

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по 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/AbstractDocument.html

Spec-Zone.ru

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