Класс PlainDocument
- java.lang.Object
- javax.swing.text.AbstractDocument
- javax.swing.text.PlainDocument
- Все реализованные интерфейсы:
-
Serializable,Document
public class PlainDocument extends AbstractDocument
Простой документ, который не сохраняет атрибуты символов. Умолчательная структура элементов этого документа — отображение строк текста. Элемент, возвращаемый методом getDefaultRootElement, представляет собой отображение строк, а каждый дочерний элемент — строку. Эта модель не сохраняет атрибуты на уровне символов, но каждая строка может быть помечена произвольным набором атрибутов. Переводы строки в смещение и смещения в строку можно быстро выполнить, используя корневой элемент по умолчанию. Информация о структуре, содержащаяся в событиях DocumentEvent, генерируемых редактированием, будет указывать на изменения структуры строк.
Управление хранением содержимого по умолчанию выполняется с помощью реализации с зазорами (GapContent). Она поддерживает редактирование достаточно больших документов с хорошей эффективностью, когда правки являются непрерывными или сгруппированными, как это типично.
Предупреждение: Сериализованные объекты этого класса не будут совместимы с будущими выпусками Swing. Текущая поддержка сериализации подходит для краткосрочного хранения или RMI между приложениями, использующими одну и ту же версию Swing. Начиная с версии 1.4, поддержка долгосрочного хранения всех JavaBeans™ была добавлена в пакет java.beans. См. XMLEncoder.
- См. также:
-
Document,AbstractDocument, Сериализованная форма
Вложенные классы
Вложенные классы/интерфейсы, объявленные в классе javax.swing.text.AbstractDocument
AbstractDocument.AbstractElement, AbstractDocument.AttributeContext, AbstractDocument.BranchElement, AbstractDocument.Content, AbstractDocument.DefaultDocumentEvent, AbstractDocument.ElementEdit, AbstractDocument.LeafElementПоля
| Модификатор и тип | Поле | Описание |
|---|---|---|
static String | lineLimitAttribute | Имя атрибута, определяющего максимальную длину строки, если она ограничена. |
static String | tabSizeAttribute | Имя атрибута, определяющего размер табуляции для табуляций, содержащихся в содержимом. |
Поля, объявленные в классе javax.swing.text.AbstractDocument
BAD_LOCATION, BidiElementName, ContentElementName, ElementNameAttribute, listenerList, ParagraphElementName, SectionElementNameПоля, объявленные в интерфейсе javax.swing.text.Document
StreamDescriptionProperty, TitlePropertyКраткое описание конструкторов
| Конструктор | Описание |
|---|---|
PlainDocument() | Создает документ с простым текстом. |
PlainDocument(AbstractDocument.Content c) | Создает документ с простым текстом. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
protected AbstractDocument.AbstractElement | createDefaultRoot() | Создает корневой элемент, используемый для представления структуры документа по умолчанию. |
Element | getDefaultRootElement() | Получает корневой элемент по умолчанию для модели документа. |
Element | getParagraphElement(int pos) | Получает элемент абзаца, содержащий данную позицию. |
void | insertString(int offs,
String str,
AttributeSet a) | Вставляет содержимое в документ. |
protected void | insertUpdate(AbstractDocument.DefaultDocumentEvent chng,
AttributeSet attr) | Обновляет структуру документа в результате вставки текста. |
protected void | removeUpdate(AbstractDocument.DefaultDocumentEvent chng) | Обновляет структуру документа в результате удаления текста. |
Методы, объявленные в классе javax.swing.text.AbstractDocument
addDocumentListener, 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, postRemoveUpdate, putProperty, readLock, readUnlock, remove, removeDocumentListener, removeUndoableEditListener, render, replace, setAsynchronousLoadPriority, setDocumentFilter, setDocumentProperties, writeLock, writeUnlockМетоды, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitПодробное описание полей
tabSizeAttribute
public static final String tabSizeAttribute
Имя атрибута, определяющего размер табуляции для табуляций, содержащихся в содержимом. Тип значения — Integer.
- См. также:
- Значения константных полей
lineLimitAttribute
public static final String lineLimitAttribute
Имя атрибута, определяющего максимальную длину строки, если она ограничена. Тип значения — Integer.
- См. также:
- Значения константных полей
Подробное описание конструкторов
PlainDocument
public PlainDocument()
Создает документ с простым текстом. Создается и устанавливается модель по умолчанию, использующая GapContent.
PlainDocument
public PlainDocument(AbstractDocument.Content c)
Создает документ с простым текстом. Создается корневой элемент по умолчанию, и размер табуляции устанавливается в 8.
- Параметры:
-
c- контейнер для содержимого
Подробное описание методов
insertString
public void insertString(int offs,
String str,
AttributeSet a)
throws BadLocationExceptionВставляет содержимое в документ. Вставка содержимого приводит к блокировке записи во время фактических изменений, за которым следует уведомление наблюдателей в потоке, который захватил блокировку записи.
Этот метод потокобезопасен, хотя большинство методов Swing таковыми не являются. Подробнее об этом см. Асинхронность в Swing.
- Указано в:
-
insertStringв интерфейсеDocument - Переопределяет:
-
insertStringв классеAbstractDocument - Параметры:
-
offs- начальное смещение >= 0 -
str- строка для вставки; ничего не делает с null/пустыми строками -
a- атрибуты для вставляемого содержимого - Исключения:
-
BadLocationException- заданная позиция вставки не является допустимой позицией в документе - См. также:
Document.insertString(int, java.lang.String, javax.swing.text.AttributeSet)
getDefaultRootElement
public Element getDefaultRootElement()
Получает корневой элемент по умолчанию для модели документа.
- Указано в:
-
getDefaultRootElementв интерфейсеDocument - Указано в:
-
getDefaultRootElementв классеAbstractDocument - Возвращает:
- корневой элемент
- См. также:
Document.getDefaultRootElement()
createDefaultRoot
protected AbstractDocument.AbstractElement createDefaultRoot()
Создает корневой элемент, используемый для представления структуры документа по умолчанию.
- Возвращает:
- базовый элемент
getParagraphElement
public Element getParagraphElement(int pos)
Получает элемент абзаца, содержащий данную позицию. Так как этот документ моделирует только строки, он возвращает строку вместо элемента.
- Указано в:
-
getParagraphElementв классеAbstractDocument - Параметры:
-
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- событие изменения, описывающее правку
© 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/PlainDocument.html