Spec-Zone.ru › OpenJDK 17

Класс 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, если документ типа AbstractDocument. Блокировка предполагает, что отдельный поток будет обращаться к иерархии представлений только из методов DocumentListener и что будет только один активный поток событий за раз.

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

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

Предупреждение: Сериализованные объекты этого класса не будут совместимы с будущими выпусками Swing. Текущая поддержка сериализации подходит для краткосрочного хранения или RMI между приложениями, использующими ту же версию Swing. С версии 1.4 добавлена поддержка длительного хранения всех JavaBeans в пакет java.beans. Пожалуйста, обратитесь к 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
Имя элементов, используемых для представления разделов (строк/абзацев).

Поля, объявленные в интерфейсе javax.swing.text.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.

Методы, объявленные в классе java.lang.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(java.util.Dictionary<java.lang.Object, java.lang.Object>)

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(javax.swing.text.DocumentFilter)

render

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

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

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

Этот метод потокобезопасен, хотя большинство методов 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(javax.swing.event.DocumentListener)

removeDocumentListener

public void removeDocumentListener(DocumentListener listener)
Удаляет слушателя изменений документа.
Указано в:
removeDocumentListener в интерфейсе Document
Параметры:
listener - слушатель DocumentListener для удаления
См. также:
  • Document.removeDocumentListener(javax.swing.event.DocumentListener)

getDocumentListeners

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

addUndoableEditListener

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

removeUndoableEditListener

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

getUndoableEditListeners

public UndoableEditListener[] getUndoableEditListeners()
Возвращает массив всех слушателей отмены/повтора, зарегистрированных в этом документе.
Возвращает:
все слушатели UndoableEditListener этого документа или пустой массив, если слушатели отмены/повтора не зарегистрированы
С:
1.4
См. также:
  • addUndoableEditListener(javax.swing.event.UndoableEditListener)
  • removeUndoableEditListener(javax.swing.event.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, java.lang.String, javax.swing.text.AttributeSet)

getText

public String getText(int offset, int length) throws BadLocationException
Получает последовательность текста из документа.
Specified by:
getText в интерфейсе Document
Parameters:
offset - начальный смещение >= 0
length - количество символов для извлечения >= 0
Returns:
текст
Throws:
BadLocationException - заданный диапазон включает позицию, которая не является допустимой позицией в документе
See Also:
  • 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;
   }
 
Specified by:
getText в интерфейсе Document
Parameters:
offset - начальный смещение >= 0
length - количество символов для извлечения >= 0
txt - объект Segment для извлечения текста
Throws:
BadLocationException - заданный диапазон включает позицию, которая не является допустимой позицией в документе

createPosition

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

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

Specified by:
createPosition в интерфейсе Document
Parameters:
offs - позиция в модели >= 0
Returns:
позиция
Throws:
BadLocationException - если заданная позиция не представляет допустимое местоположение в связанном документе
See Also:
  • Document.createPosition(int)

getStartPosition

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

getEndPosition

public final Position getEndPosition()
Возвращает позицию, представляющую конец документа. Возвращаемая позиция может отслеживать изменения и оставаться в конце документа.
Specified by:
getEndPosition в интерфейсе Document
Returns:
позиция

getRootElements

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

getDefaultRootElement

public abstract Element getDefaultRootElement()
Возвращает корневой элемент, на котором должны основываться представления, если не предоставлен какой-либо другой механизм для назначения представлений элементам.
Specified by:
getDefaultRootElement в интерфейсе Document
Returns:
корневой элемент
See Also:
  • Document.getDefaultRootElement()

getBidiRootElement

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

getParagraphElement

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

getAttributeContext

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

insertUpdate

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

removeUpdate

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

postRemoveUpdate

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

dump

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

getContent

protected final AbstractDocument.Content getContent()
Получает содержимое документа.
Returns:
содержимое

createLeafElement

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

createBranchElement

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

getCurrentWriter

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

writeLock

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

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

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

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()

© 1993, 2021, 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/17/docs/api/java.desktop/javax/swing/text/AbstractDocument.html

Spec-Zone.ru

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