Spec-Zone.ru › OpenJDK 27

Класс HTMLDocument

java.lang.Object
javax.swing.text.AbstractDocument
javax.swing.text.DefaultStyledDocument
javax.swing.text.html.HTMLDocument
Все реализованные интерфейсы:
Serializable, Document, StyledDocument
public class HTMLDocument extends DefaultStyledDocument
Документ, моделирующий HTML. Цель этой модели — поддерживать как просмотр, так и редактирование. Поэтому структура, описанная HTML-документом, по умолчанию не воспроизводится в точности. Структура элементов, моделируемая по умолчанию, создается классом HTMLDocument.HTMLReader, реализующим протокол HTMLEditorKit.ParserCallback, который ожидает парсер. Чтобы изменить структуру, можно создать подкласс HTMLReader и переопределить метод getReader(int), чтобы он возвращал новую реализацию считывателя. Подробности о структуре, создаваемой по умолчанию, см. в документации к HTMLReader. Предполагается, что документ не приводит к потере данных (хотя в результате воспроизведения формата HTML может получиться другой формат).

Документ моделирует только HTML и не пытается хранить в себе атрибуты представления. Элементы идентифицируются атрибутом StyleContext.NameAttribute, который всегда должен иметь значение типа HTML.Tag, определяющее вид элемента. Некоторые элементы (например, комментарии) создаются автоматически. HTMLFactory использует этот атрибут, чтобы определить, какое представление нужно построить.

Этот документ поддерживает инкрементальную загрузку. Свойство TokenThreshold определяет, какая часть разобранного содержимого буферизуется перед попыткой обновить структуру элементов документа. Это свойство устанавливается с помощью EditorKit, чтобы подклассы могли отключить эту возможность.

Свойство Base определяет URL, относительно которого разрешаются относительные URL. По умолчанию это будет Document.StreamDescriptionProperty, если значение свойства является URL. Если встречается тег <BASE>, базовым становится URL, указанный этим тегом. Поскольку базовый URL является свойством, его, разумеется, можно задать напрямую.

В этом документе по умолчанию для хранения содержимого используется буфер с промежутком (GapContent). Альтернативный механизм можно указать с помощью конструктора, принимающего реализацию Content.

Изменение HTMLDocument

Помимо методов Document и StyledDocument для изменения HTMLDocument, HTMLDocument предоставляет ряд вспомогательных методов. Следующие методы можно использовать для вставки HTML-содержимого в существующий документ.

  • setInnerHTML(Element, String)
  • setOuterHTML(Element, String)
  • insertBeforeStart(Element, String)
  • insertAfterStart(Element, String)
  • insertBeforeEnd(Element, String)
  • insertAfterEnd(Element, String)

В следующих примерах показано использование этих методов. В каждом примере предполагается, что HTML-документ инициализирован следующим образом:

JEditorPane p = new JEditorPane();
p.setContentType("text/html");
p.setText("..."); // Document text is provided below.
HTMLDocument d = (HTMLDocument) p.getDocument();

Со следующим HTML-содержимым:

<html>
  <head>
    <title>An example HTMLDocument</title>
    <style type="text/css">
      div { background-color: silver; }
      ul { color: blue; }
    </style>
  </head>
  <body>
    <div id="BOX">
      <p>Paragraph 1</p>
      <p>Paragraph 2</p>
    </div>
  </body>
</html>

Для всех методов изменения HTML-документа требуется Element. Элементы можно получить из HTML-документа с помощью метода getElement(Element e, Object attribute, Object value). Он возвращает первый дочерний элемент, содержащий указанный атрибут с заданным значением, при обходе в глубину. Например, d.getElement(d.getDefaultRootElement(), StyleConstants.NameAttribute, HTML.Tag.P) возвращает первый элемент абзаца.

Удобный способ поиска элементов — метод getElement(String); он возвращает элемент, атрибут ID которого соответствует указанному значению. Например, d.getElement("BOX") возвращает элемент DIV.

Метод getIterator(HTML.Tag t) также можно использовать для поиска всех вхождений указанного HTML-тега в документе.

Вставка элементов

Элементы можно вставлять перед или после существующих дочерних элементов любого нелистового элемента с помощью методов insertAfterStart и insertBeforeEnd. Например, если e — элемент DIV, то d.insertAfterStart(e, "<ul><li>List Item</li></ul>") вставляет список перед первым абзацем, а d.insertBeforeEnd(e, "<ul><li>List Item</li></ul>") вставляет список после последнего абзаца. Блок DIV становится родительским для вновь вставленных элементов.

Элементы-соседи можно вставлять перед или после любого элемента с помощью методов insertBeforeStart и insertAfterEnd. Например, если e — элемент DIV, то d.insertBeforeStart(e, "<ul><li>List Item</li></ul>") вставляет список перед элементом DIV, а d.insertAfterEnd(e, "<ul><li>List Item</li></ul>") вставляет список после элемента DIV. Вновь вставленные элементы становятся соседями элемента DIV.

Замена элементов

Элементы и все их потомки можно заменить с помощью методов setInnerHTML и setOuterHTML. Например, если e — элемент DIV, то d.setInnerHTML(e, "<ul><li>List Item</li></ul>") заменяет все дочерние абзацы списком, а d.setOuterHTML(e, "<ul><li>List Item</li></ul>") заменяет сам элемент DIV. В последнем случае родителем списка становится элемент BODY.

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

В следующей таблице показан пример документа и результаты работы различных описанных выше методов.

HTML-содержимое приведенного выше примера
Пример insertAfterStart insertBeforeEnd insertBeforeStart insertAfterEnd setInnerHTML setOuterHTML

Абзац 1

Абзац 2

  • Элемент списка

Абзац 1

Абзац 2

Абзац 1

Абзац 2

  • Элемент списка
  • Элемент списка

Абзац 1

Абзац 2

Абзац 1

Абзац 2

  • Элемент списка
  • Элемент списка
  • Элемент списка

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

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

Модификатор и тип Класс Описание
class  HTMLDocument.BlockElement
Элемент, представляющий структурный блок HTML.
class  HTMLDocument.HTMLReader
Средство чтения HTML для загрузки HTML-документа со структурой HTML-элементов.
static class  HTMLDocument.Iterator
Итератор для обхода тегов определённого типа.
class  HTMLDocument.RunElement
Элемент, представляющий фрагмент текста, которому назначен набор атрибутов HTML на уровне символов.

Вложенные классы/интерфейсы, объявленные в классе DefaultStyledDocument

DefaultStyledDocument.AttributeUndoableEdit, DefaultStyledDocument.ElementBuffer, DefaultStyledDocument.ElementSpec, DefaultStyledDocument.SectionElement
Модификатор и тип Класс Описание
static class  DefaultStyledDocument.AttributeUndoableEdit
UndoableEdit, используемый для сохранения изменений AttributeSet элемента.
class  DefaultStyledDocument.ElementBuffer
Класс для управления изменениями иерархии элементов.
static class  DefaultStyledDocument.ElementSpec
Спецификация для построения элементов.
protected class  DefaultStyledDocument.SectionElement
Корневой элемент документа по умолчанию... описывает содержащиеся в нём абзацы/строки.

Вложенные классы/интерфейсы, объявленные в классе AbstractDocument

AbstractDocument.AbstractElement, AbstractDocument.AttributeContext, AbstractDocument.BranchElement, AbstractDocument.Content, AbstractDocument.DefaultDocumentEvent, AbstractDocument.ElementEdit, AbstractDocument.LeafElement
Модификатор и тип Класс Описание
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
Реализует элемент, непосредственно представляющий содержимое некоторого типа.

Краткое описание полей

Модификатор и тип Поле Описание
static final String AdditionalComments
Значение ключа свойства документа.

Поля, объявленные в классе DefaultStyledDocument

buffer, BUFFER_SIZE_DEFAULT
Модификатор и тип Поле Описание
protected DefaultStyledDocument.ElementBuffer buffer
Буфер элементов.
static final int BUFFER_SIZE_DEFAULT
Размер буфера начального содержимого по умолчанию.

Поля, объявленные в классе AbstractDocument

BAD_LOCATION, BidiElementName, ContentElementName, ElementNameAttribute, listenerList, ParagraphElementName, SectionElementName
Модификатор и тип Поле Описание
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
Модификатор и тип Поле Описание
static final String StreamDescriptionProperty
Имя свойства, содержащего описание потока, использованного для инициализации документа.
static final String TitleProperty
Имя свойства, содержащего заголовок документа, если он есть.

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

Конструктор Описание
HTMLDocument()
Создаёт HTML-документ с размером буфера по умолчанию и стандартным StyleSheet.
HTMLDocument(AbstractDocument.Content c, StyleSheet styles)
Создаёт HTML-документ с заданной реализацией хранилища содержимого и заданным механизмом хранения стилей/атрибутов.
HTMLDocument(StyleSheet styles)
Создаёт HTML-документ с реализацией хранилища содержимого по умолчанию и заданным механизмом хранения стилей/атрибутов.

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

Модификатор и тип Метод Описание
protected void create(DefaultStyledDocument.ElementSpec[] data)
Заменяет содержимое документа заданными спецификациями элементов.
protected Element createBranchElement(Element parent, AttributeSet a)
Создаёт ветвевой элемент документа, который может содержать другие элементы.
protected AbstractDocument.AbstractElement createDefaultRoot()
Создаёт корневой элемент для представления структуры документа по умолчанию.
protected Element createLeafElement(Element parent, AttributeSet a, int p0, int p1)
Создаёт листовой элемент документа, непосредственно представляющий текст (у него нет дочерних элементов).
protected void fireChangedUpdate(DocumentEvent e)
Уведомляет всех прослушивателей, зарегистрировавших интерес к уведомлениям о событиях этого типа.
protected void fireUndoableEditUpdate(UndoableEditEvent e)
Уведомляет всех прослушивателей, зарегистрировавших интерес к уведомлениям о событиях этого типа.
URL getBase()
Возвращает расположение, относительно которого разрешаются относительные URL.
Element getElement(String id)
Возвращает элемент с заданным идентификатором Attribute.
Element getElement(Element e, Object attribute, Object value)
Возвращает дочерний элемент e, содержащий атрибут attribute со значением value, или null, если такой элемент не найден.
HTMLDocument.Iterator getIterator(HTML.Tag t)
Получает итератор для указанного HTML-тега.
HTMLEditorKit.Parser getParser()
Возвращает анализатор, используемый при вставке HTML в существующий документ.
boolean getPreservesUnknownTags()
Возвращает поведение анализатора при обнаружении неизвестных тегов.
HTMLEditorKit.ParserCallback getReader(int pos)
Получает средство чтения, используемое анализатором при загрузке документа с HTML.
HTMLEditorKit.ParserCallback getReader(int pos, int popDepth, int pushDepth, HTML.Tag insertTag)
Возвращает средство чтения, используемое анализатором для загрузки документа с HTML.
StyleSheet getStyleSheet()
Получает StyleSheet с правилами отображения (CSS), специфичными для документа и заданными непосредственно в HTML-документе.
int getTokenThreshold()
Получает количество токенов, которые буферизуются перед попыткой обновить структуру элементов документа.
protected void insert(int offset, DefaultStyledDocument.ElementSpec[] data)
Массово вставляет новые элементы.
void insertAfterEnd(Element elem, String htmlText)
Вставляет HTML, заданный в виде строки, после конца указанного элемента.
void insertAfterStart(Element elem, String htmlText)
Вставляет HTML, заданный в виде строки, в начало элемента.
void insertBeforeEnd(Element elem, String htmlText)
Вставляет HTML, заданный в виде строки, в конец элемента.
void insertBeforeStart(Element elem, String htmlText)
Вставляет HTML, заданный в виде строки, перед началом указанного элемента.
protected void insertUpdate(AbstractDocument.DefaultDocumentEvent chng, AttributeSet attr)
Обновляет структуру документа в результате вставки текста.
void processHTMLFrameHyperlinkEvent(HTMLFrameHyperlinkEvent e)
Обрабатывает HyperlinkEvents, создаваемые документами во фрейме HTML.
void setBase(URL u)
Задаёт расположение, относительно которого разрешаются относительные URL.
void setInnerHTML(Element elem, String htmlText)
Заменяет дочерние элементы указанного элемента содержимым, заданным в виде строки HTML.
void setOuterHTML(Element elem, String htmlText)
Заменяет указанный элемент в родительском элементе содержимым, заданным в виде строки HTML.
void setParagraphAttributes(int offset, int length, AttributeSet s, boolean replace)
Задаёт атрибуты абзаца.
void setParser(HTMLEditorKit.Parser parser)
Задаёт анализатор, используемый методами вставки HTML в существующий документ, такими как setInnerHTML и setOuterHTML.
void setPreservesUnknownTags(boolean preservesTags)
Определяет, как анализатор обрабатывает неизвестные теги.
void setTokenThreshold(int n)
Задаёт количество токенов, которые буферизуются перед попыткой обновить структуру элементов документа.

Методы, объявленные в классе DefaultStyledDocument

addDocumentListener, addStyle, getBackground, getCharacterElement, getDefaultRootElement, getFont, getForeground, getLogicalStyle, getParagraphElement, getStyle, getStyleNames, removeDocumentListener, removeElement, removeStyle, removeUpdate, setCharacterAttributes, setLogicalStyle, styleChanged
Модификатор и тип Метод Описание
void addDocumentListener(DocumentListener listener)
Добавляет прослушиватель документа для получения уведомлений о любых изменениях.
Style addStyle(String nm, Style parent)
Добавляет новый стиль в иерархию логических стилей.
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)
Получает элемент абзаца со смещением pos.
Style getStyle(String nm)
Получает ранее добавленный именованный стиль.
Enumeration<?> getStyleNames()
Получает список имён стилей.
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)
Задаёт логический стиль для абзаца в указанной позиции.
protected void styleChanged(Style style)
Вызывается при изменении любого стиля этого документа.

Методы, объявленные в классе AbstractDocument

addUndoableEditListener, createPosition, dump, fireInsertUpdate, fireRemoveUpdate, 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
Модификатор и тип Метод Описание
void addUndoableEditListener(UndoableEditListener listener)
Добавляет прослушиватель отмены действий для получения уведомлений о любых изменениях.
Position createPosition(int offs)
Возвращает позицию, отслеживающую изменения при редактировании документа.
void dump(PrintStream out)
Выводит диагностическую информацию.
protected void fireInsertUpdate(DocumentEvent e)
Уведомляет всех прослушивателей, зарегистрировавших интерес к уведомлениям о событиях этого типа.
protected void fireRemoveUpdate(DocumentEvent e)
Уведомляет всех прослушивателей, зарегистрировавших интерес к уведомлениям о событиях этого типа.
int getAsynchronousLoadPriority()
Получает приоритет асинхронной загрузки.
protected final AbstractDocument.AttributeContext getAttributeContext()
Получает контекст для управления атрибутами.
Element getBidiRootElement()
Возвращает корневой элемент двунаправленной структуры этого документа.
protected final AbstractDocument.Content getContent()
Получает содержимое документа.
protected final Thread getCurrentWriter()
Получает текущий поток записи, если он есть.
DocumentFilter getDocumentFilter()
Возвращает DocumentFilter, отвечающий за фильтрацию вставки и удаления.
DocumentListener[] getDocumentListeners()
Возвращает массив всех прослушивателей документа, зарегистрированных в этом документе.
Dictionary<Object,Object> getDocumentProperties()
Обеспечивает управление набором свойств.
final Position getEndPosition()
Возвращает позицию, соответствующую концу документа.
int getLength()
Возвращает длину данных.
<T extends EventListener>
T[]
getListeners(Class<T> listenerType)
Возвращает массив всех объектов, зарегистрированных в данный момент в качестве FooListenerов этого документа.
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 postRemoveUpdate(AbstractDocument.DefaultDocumentEvent chng)
Обновляет структуру документа в результате удаления текста.
final void putProperty(Object key, Object value)
Вспомогательный метод для сохранения значения свойства.
final void readLock()
Захватывает блокировку, чтобы начать чтение состояния документа.
final void readUnlock()
Снимает блокировку чтения.
void remove(int offs, int len)
Удаляет содержимое из документа.
void removeUndoableEditListener(UndoableEditListener listener)
Удаляет прослушиватель отмены действий.
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
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли другой объект этому объекту.
protected void finalize()
Устарел, планируется удаление: этот элемент API может быть удалён в будущей версии.
Финализация объявлена устаревшей и может быть удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания.
final void wait(long timeoutMillis)
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени.

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

AdditionalComments

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

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

HTMLDocument

public HTMLDocument()
Создает HTML-документ с размером буфера по умолчанию и StyleSheet по умолчанию. Это вспомогательный метод для конструктора HTMLDocument(Content, StyleSheet).

HTMLDocument

public HTMLDocument(StyleSheet styles)
Создает HTML-документ с реализацией хранилища содержимого по умолчанию и указанным механизмом хранения стилей/атрибутов. Это вспомогательный метод для конструктора HTMLDocument(Content, StyleSheet).
Параметры:
styles — стили

HTMLDocument

public HTMLDocument(AbstractDocument.Content c, StyleSheet styles)
Создает HTML-документ с заданной реализацией хранилища содержимого и заданным механизмом хранения стилей/атрибутов.
Параметры:
c — контейнер содержимого
styles — стили

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

getReader

public HTMLEditorKit.ParserCallback getReader(int pos)
Получает средство чтения, используемое анализатором при загрузке документа с HTML. Реализация возвращает экземпляр HTMLDocument.HTMLReader. При необходимости подклассы могут переопределить этот метод, чтобы изменить структуру документа. (Например, для обработки пользовательских тегов или структурного представления элементов символьного стиля.)
Параметры:
pos — начальная позиция
Возвращает:
средство чтения, используемое анализатором для загрузки документа

getReader

public HTMLEditorKit.ParserCallback getReader(int pos, int popDepth, int pushDepth, HTML.Tag insertTag)
Возвращает средство чтения, используемое анализатором при загрузке документа с HTML. Реализация возвращает экземпляр HTMLDocument.HTMLReader. При необходимости подклассы могут переопределить этот метод, чтобы изменить структуру документа. (Например, для обработки пользовательских тегов или структурного представления элементов символьного стиля.)

Это вспомогательный метод для getReader(int, int, int, HTML.Tag, TRUE).

Параметры:
pos — начальная позиция
popDepth — количество ElementSpec.EndTagTypes для создания перед вставкой
pushDepth — количество ElementSpec.StartTagTypes с направлением ElementSpec.JoinNextDirection, которые следует создать перед вставкой, но после создания конечных тегов
insertTag — первый тег, с которого начинается вставка в документ
Возвращает:
средство чтения, используемое анализатором для загрузки документа

getBase

public URL getBase()
Возвращает расположение, относительно которого разрешаются относительные URL-адреса. По умолчанию это URL-адрес документа, если документ был загружен по URL-адресу. Если найден тег base и его удалось обработать, он будет использоваться как базовое расположение.
Возвращает:
базовое расположение

setBase

public void setBase(URL u)
Задает расположение, относительно которого разрешаются относительные URL-адреса. По умолчанию это URL-адрес документа, если документ был загружен по URL-адресу. Если найден тег base и его удалось обработать, он будет использоваться как базовое расположение.

Кроме того, базовое расположение для StyleSheet задается равным u, как и базовое расположение документа.

Параметры:
u — желаемый базовый URL-адрес

insert

protected void insert(int offset, DefaultStyledDocument.ElementSpec[] data) throws BadLocationException
Массово вставляет новые элементы. Так создаются элементы в документе. В ходе анализа определяется необходимая структура и создается спецификация в виде набора токенов, описывающих изменение, при этом документ не блокируется для записи. Затем средство чтения может вызывать этот метод пакетами, чтобы блокировать документ для записи на более короткое время (то есть только на время фактического изменения документа).
Переопределяет:
insert в классе DefaultStyledDocument
Параметры:
offset — начальное смещение
data — данные элемента
Исключения:
BadLocationException — если заданная позиция не является допустимым расположением в связанном документе.

insertUpdate

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

create

protected void create(DefaultStyledDocument.ElementSpec[] data)
Заменяет содержимое документа заданными спецификациями элементов. Вызывается перед вставкой, если загрузка выполняется пакетами. Это единственный вызываемый метод, если весь документ загружается одним пакетом.
Переопределяет:
create в классе DefaultStyledDocument
Параметры:
data — новое содержимое документа

setParagraphAttributes

public void setParagraphAttributes(int offset, int length, AttributeSet s, boolean replace)
Задает атрибуты абзаца.

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

Определен в:
setParagraphAttributes в интерфейсе StyledDocument
Переопределяет:
setParagraphAttributes в классе DefaultStyledDocument
Параметры:
offset — смещение внутри абзаца (должно быть не меньше 0)
length — количество затронутых символов (должно быть не меньше 0)
s — атрибуты
replace — следует ли заменять существующие атрибуты или объединять их

getStyleSheet

public StyleSheet getStyleSheet()
Получает StyleSheet с правилами отображения (CSS), специфичными для документа и заданными непосредственно в HTML-документе.
Возвращает:
StyleSheet

getIterator

public HTMLDocument.Iterator getIterator(HTML.Tag t)
Получает итератор для указанного HTML-тега. Его можно использовать, например, для перебора набора содержащихся в документе якорей или элементов ввода.
Параметры:
t — запрошенный HTML.Tag
Возвращает:
Iterator для заданного HTML-тега
См. также:
  • HTML.Tag

createLeafElement

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

createBranchElement

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

createDefaultRoot

protected AbstractDocument.AbstractElement createDefaultRoot()
Создает корневой элемент для представления структуры документа по умолчанию.
Переопределяет:
createDefaultRoot в классе DefaultStyledDocument
Возвращает:
базовый элемент

setTokenThreshold

public void setTokenThreshold(int n)
Задает количество токенов, которые следует буферизовать перед попыткой обновить структуру элементов документа.
Параметры:
n — количество токенов для буферизации

getTokenThreshold

public int getTokenThreshold()
Возвращает количество токенов, которые следует буферизовать перед попыткой обновить структуру элементов документа. Значение по умолчанию — Integer.MAX_VALUE.
Возвращает:
количество токенов для буферизации

setPreservesUnknownTags

public void setPreservesUnknownTags(boolean preservesTags)
Определяет, как анализатор обрабатывает неизвестные теги. Если задано значение true, неизвестные теги включаются в модель, в противном случае они отбрасываются.
Параметры:
preservesTags — true, если неизвестные теги следует сохранять в модели; в противном случае теги отбрасываются
См. также:
  • HTML.Tag

getPreservesUnknownTags

public boolean getPreservesUnknownTags()
Возвращает поведение анализатора при обнаружении неизвестных тегов.
Возвращает:
true, если неизвестные теги следует сохранять при анализе
См. также:
  • HTML.Tag

processHTMLFrameHyperlinkEvent

public void processHTMLFrameHyperlinkEvent(HTMLFrameHyperlinkEvent e)
Обрабатывает HyperlinkEvents, генерируемые документами во фрейме HTML. Тип HyperlinkEvent, как следует из параметра, — HTMLFrameHyperlinkEvent. Помимо типичной информации, содержащейся в HyperlinkEvent, это событие содержит элемент, соответствующий фрейму, в котором произошел щелчок (исходный элемент), и целевое имя. Целевое имя может иметь одно из четырех значений:
  • _self
  • _parent
  • _top
  • именованный фрейм
Если целевое имя — _self, действие изменяет значение атрибута HTML.Attribute.SRC и генерирует событие ChangedUpdate.

Если целевое имя — _parent, удаляется родительский элемент, являющийся элементом <FRAMESET>, вставляется новый элемент <FRAME>, его атрибуту HTML.Attribute.SRC присваивается значение URL-адреса назначения, после чего генерируются события RemovedUpdate и InsertUpdate.

Если целевое имя — _top, этот метод ничего не делает. В реализации представления фрейма, а именно в FrameView, обработка _top выполняется отдельно. Поскольку _top подразумевает замену всего документа, имеет смысл обрабатывать это вне документа, который будет заменен.

Если целевое имя — именованный фрейм, в иерархии элементов выполняется поиск элемента с именем, совпадающим с целевым; его атрибут HTML.Attribute.SRC обновляется и генерируется событие ChangedUpdate.

Параметры:
e — событие

setParser

public void setParser(HTMLEditorKit.Parser parser)
Задает анализатор, используемый методами, вставляющими HTML в существующий документ, например setInnerHTML и setOuterHTML.

HTMLEditorKit.createDefaultDocument задает анализатор автоматически. Если вы создаете HTMLDocument вручную, не забудьте соответствующим образом задать анализатор.

Параметры:
parser — анализатор, используемый для вставки текста
Начиная с:
1.3

getParser

public HTMLEditorKit.Parser getParser()
Возвращает анализатор, используемый при вставке HTML в существующий документ.
Возвращает:
анализатор, используемый для вставки текста
Начиная с:
1.3

setInnerHTML

public void setInnerHTML(Element elem, String htmlText) throws BadLocationException, IOException
Заменяет дочерние элементы заданного элемента содержимым, указанным в виде строки HTML.

Это приведет как минимум к двум событиям: n вставкам, за которыми следует удаление.

Рассмотрим следующую структуру (параметр elem выделен полужирным).

    <body>
      |
    <div>
     /  \
   <p>   <p>

Вызов setInnerHTML(elem, "<ul><li>") приводит к следующей структуре (новые элементы выделены синим цветом).

    <body>
      |
    <div>
        \
        <ul>
          \
          <li>

Параметр elem не должен быть листовым элементом, иначе будет выброшено исключение IllegalArgumentException. Если параметр elem или htmlText равен null, документ не изменяется.

Для корректной работы необходимо, чтобы для документа был задан HTMLEditorKit.Parser. Это выполняется, если документ был создан с помощью HTMLEditorKit посредством метода createDefaultDocument.

Параметры:
elem — ветвевой элемент, дочерние элементы которого будут заменены
htmlText — строка, которую следует разобрать и присвоить elem
Исключения:
IllegalArgumentException — если elem является листовым элементом
IllegalStateException — если не задан HTMLEditorKit.Parser
BadLocationException — если замена невозможна из-за проблемы со структурой
IOException — если возникает исключение ввода-вывода
Начиная с:
1.3

setOuterHTML

public void setOuterHTML(Element elem, String htmlText) throws BadLocationException, IOException
Заменяет заданный элемент в родительском элементе содержимым, указанным в виде строки HTML.

Это приведет как минимум к двум событиям: n вставкам, за которыми следует удаление.

При замене листового элемента метод попытается добавить символ новой строки, если он необходим. Это может привести к вставке дополнительного элемента. Например, если заменить символьный элемент, содержащий символ новой строки, на <img>, будут созданы два элемента: один для изображения, другой для символа новой строки.

Если попытаться заменить элемент в позиции, равной длине, скорее всего, в итоге получится два элемента. Например, setOuterHTML(getCharacterElement (getLength()), "blah") создаст в конце два листовых элемента: один для 'blah', другой для конечного элемента.

Рассмотрим следующую структуру (параметр elem выделен полужирным).

    <body>
      |
    <div>
     /  \
   <p>   <p>

Вызов setOuterHTML(elem, "<ul><li>") приводит к следующей структуре (новые элементы выделены синим цветом).

   <body>
     |
    <ul>
      \
      <li>

Если параметр elem или htmlText равен null, документ не изменяется.

Для корректной работы необходимо, чтобы для документа был задан HTMLEditorKit.Parser. Это выполняется, если документ был создан с помощью HTMLEditorKit посредством метода createDefaultDocument.

Параметры:
elem — заменяемый элемент
htmlText — строка, которую следует разобрать и вставить вместо elem
Исключения:
IllegalStateException — если не задан HTMLEditorKit.Parser
BadLocationException — если замена невозможна из-за проблемы со структурой
IOException — если возникает исключение ввода-вывода
Начиная с:
1.3

insertAfterStart

public void insertAfterStart(Element elem, String htmlText) throws BadLocationException, IOException
Вставляет HTML, заданный в виде строки, в начало элемента.

Рассмотрим следующую структуру (параметр elem выделен полужирным).

    <body>
      |
    <div>
     /  \
   <p>   <p>

Вызов insertAfterStart(elem, "<ul><li>") приводит к следующей структуре (новые элементы выделены синим цветом).

       <body>
         |
       <div>
      /  |  \
   <ul> <p> <p>
    /
 <li>

В отличие от метода insertBeforeStart, новые элементы становятся дочерними элементами указанного элемента, а не его соседними элементами.

Параметр elem не должен быть листовым элементом, иначе будет выброшено исключение IllegalArgumentException. Если параметр elem или htmlText равен null, документ не изменяется.

Для корректной работы необходимо, чтобы для документа был задан HTMLEditorKit.Parser. Это выполняется, если документ был создан с помощью HTMLEditorKit посредством метода createDefaultDocument.

Параметры:
elem — ветвевой элемент, который будет корневым для нового текста
htmlText — строка, которую следует разобрать и присвоить elem
Исключения:
IllegalArgumentException — если elem является листовым элементом
IllegalStateException — если для документа не задан HTMLEditorKit.Parser
BadLocationException — если вставка невозможна из-за проблемы со структурой
IOException — если возникает исключение ввода-вывода
Начиная с:
1.3

insertBeforeEnd

public void insertBeforeEnd(Element elem, String htmlText) throws BadLocationException, IOException
Вставляет HTML, заданный в виде строки, в конец элемента.

Если дочерние элементы elem являются листовыми, а символ в elem.getEndOffset() - 1 — символ новой строки, вставка выполняется перед ним, чтобы после символа новой строки не было текста.

Рассмотрим следующую структуру (параметр elem выделен полужирным).

    <body>
      |
    <div>
     /  \
   <p>   <p>

Вызов insertBeforeEnd(elem, "<ul><li>") приводит к следующей структуре (новые элементы выделены синим цветом).

       <body>
         |
       <div>
      /  |  \
    <p> <p> <ul>
              \
              <li>

В отличие от метода insertAfterEnd, новые элементы становятся дочерними элементами указанного элемента, а не его соседними элементами.

Параметр elem не должен быть листовым элементом, иначе будет выброшено исключение IllegalArgumentException. Если параметр elem или htmlText равен null, документ не изменяется.

Для корректной работы необходимо, чтобы для документа был задан HTMLEditorKit.Parser. Это выполняется, если документ был создан с помощью HTMLEditorKit посредством метода createDefaultDocument.

Параметры:
elem — элемент, который будет корневым для нового текста
htmlText — строка, которую следует разобрать и присвоить elem
Исключения:
IllegalArgumentException — если elem является листовым элементом
IllegalStateException — если для документа не задан HTMLEditorKit.Parser
BadLocationException — если вставка невозможна из-за проблемы со структурой
IOException — если возникает исключение ввода-вывода
Начиная с:
1.3

insertBeforeStart

public void insertBeforeStart(Element elem, String htmlText) throws BadLocationException, IOException
Вставляет HTML, заданный в виде строки, перед началом заданного элемента.

Рассмотрим следующую структуру (параметр elem выделен полужирным).

    <body>
      |
    <div>
     /  \
   <p>   <p>

Вызов insertBeforeStart(elem, "<ul><li>") приводит к следующей структуре (новые элементы выделены синим цветом).

       <body>
        /  \
     <ul> <div>
      /    /  \
    <li> <p>  <p>

В отличие от метода insertAfterStart, новые элементы становятся соседними элементами указанного элемента, а не его дочерними элементами.

Если параметр elem или htmlText равен null, документ не изменяется.

Для корректной работы необходимо, чтобы для документа был задан HTMLEditorKit.Parser. Это выполняется, если документ был создан с помощью HTMLEditorKit посредством метода createDefaultDocument.

Параметры:
elem — элемент, перед которым вставляется содержимое
htmlText — строка, которую следует разобрать и вставить перед elem
Исключения:
IllegalStateException — если для документа не задан HTMLEditorKit.Parser
BadLocationException — если вставка невозможна из-за проблемы со структурой
IOException — если возникает исключение ввода-вывода
Начиная с:
1.3

insertAfterEnd

public void insertAfterEnd(Element elem, String htmlText) throws BadLocationException, IOException
Вставляет HTML, заданный в виде строки, после конца заданного элемента.

Рассмотрим следующую структуру (параметр elem выделен полужирным).

    <body>
      |
    <div>
     /  \
   <p>   <p>

Вызов insertAfterEnd(elem, "<ul><li>") приводит к следующей структуре (новые элементы выделены синим цветом).

       <body>
        /  \
     <div> <ul>
      / \    \
    <p> <p>  <li>

В отличие от метода insertBeforeEnd, новые элементы становятся соседними элементами указанного элемента, а не его дочерними элементами.

Если параметр elem или htmlText равен null, документ не изменяется.

Для корректной работы необходимо, чтобы для документа был задан HTMLEditorKit.Parser. Это выполняется, если документ был создан с помощью HTMLEditorKit посредством метода createDefaultDocument.

Параметры:
elem — элемент, после которого вставляется содержимое
htmlText — строка, которую следует разобрать и вставить после elem
Исключения:
IllegalStateException — если для документа не задан HTMLEditorKit.Parser
BadLocationException — если вставка невозможна из-за проблемы со структурой
IOException — если возникает исключение ввода-вывода
Начиная с:
1.3

getElement

public Element getElement(String id)
Возвращает элемент с заданным идентификатором Attribute. Если элемент не найден, возвращается null. Обратите внимание, что этот метод работает с Attribute, а не с символьным тегом. В следующем фрагменте HTML: <a id="HelloThere"> атрибутом является 'id', а символьным тегом — 'a'. Это вспомогательный метод для getElement(RootElement, HTML.Attribute.id, id). Этот метод не является потокобезопасным.
Параметры:
id — строка, представляющая нужный Attribute
Возвращает:
элемент с указанным Attribute или null, если он не найден, либо null, если id имеет значение null
Начиная с:
1.3
См. также:
  • HTML.Attribute

getElement

public Element getElement(Element e, Object attribute, Object value)
Возвращает дочерний элемент e, содержащий атрибут attribute со значением value, или null, если такой элемент не найден. Этот метод не является потокобезопасным.
Параметры:
e — корневой элемент, с которого начинается поиск
attribute — нужный Attribute
value — значения для указанного Attribute
Возвращает:
элемент с указанными Attribute и value либо null, если он не найден
Начиная с:
1.3
См. также:
  • HTML.Attribute

fireChangedUpdate

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

fireUndoableEditUpdate

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

Сообщить об ошибке или предложить улучшение
Для получения дополнительных справочных материалов по API и документации для разработчиков см. Документацию Java SE, которая содержит более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, 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.

Spec-Zone.ru

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