Класс HTMLDocument
- Все реализованные интерфейсы:
Serializable, Document, StyledDocument
public class HTMLDocument extends DefaultStyledDocument
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.
Краткое описание
В следующей таблице показан пример документа и результаты работы различных описанных выше методов.
| Пример | 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 |
Создаёт HTML-документ с заданной реализацией хранилища содержимого и заданным механизмом хранения стилей/атрибутов. |
HTMLDocument |
Создаёт HTML-документ с реализацией хранилища содержимого по умолчанию и заданным механизмом хранения стилей/атрибутов. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
protected void |
create |
Заменяет содержимое документа заданными спецификациями элементов. |
protected Element |
createBranchElement |
Создаёт ветвевой элемент документа, который может содержать другие элементы. |
protected AbstractDocument.AbstractElement |
createDefaultRoot() |
Создаёт корневой элемент для представления структуры документа по умолчанию. |
protected Element |
createLeafElement |
Создаёт листовой элемент документа, непосредственно представляющий текст (у него нет дочерних элементов). |
protected void |
fireChangedUpdate |
Уведомляет всех прослушивателей, зарегистрировавших интерес к уведомлениям о событиях этого типа. |
protected void |
fireUndoableEditUpdate |
Уведомляет всех прослушивателей, зарегистрировавших интерес к уведомлениям о событиях этого типа. |
URL |
getBase() |
Возвращает расположение, относительно которого разрешаются относительные URL. |
Element |
getElement |
Возвращает элемент с заданным идентификатором Attribute. |
Element |
getElement |
Возвращает дочерний элемент e, содержащий атрибут attribute со значением value, или null, если такой элемент не найден. |
HTMLDocument.Iterator |
getIterator |
Получает итератор для указанного HTML-тега. |
HTMLEditorKit.Parser |
getParser() |
Возвращает анализатор, используемый при вставке HTML в существующий документ. |
boolean |
getPreservesUnknownTags() |
Возвращает поведение анализатора при обнаружении неизвестных тегов. |
HTMLEditorKit.ParserCallback |
getReader |
Получает средство чтения, используемое анализатором при загрузке документа с HTML. |
HTMLEditorKit.ParserCallback |
getReader |
Возвращает средство чтения, используемое анализатором для загрузки документа с HTML. |
StyleSheet |
getStyleSheet() |
Получает StyleSheet с правилами отображения (CSS), специфичными для документа и заданными непосредственно в HTML-документе. |
int |
getTokenThreshold() |
Получает количество токенов, которые буферизуются перед попыткой обновить структуру элементов документа. |
protected void |
insert |
Массово вставляет новые элементы. |
void |
insertAfterEnd |
Вставляет HTML, заданный в виде строки, после конца указанного элемента. |
void |
insertAfterStart |
Вставляет HTML, заданный в виде строки, в начало элемента. |
void |
insertBeforeEnd |
Вставляет HTML, заданный в виде строки, в конец элемента. |
void |
insertBeforeStart |
Вставляет HTML, заданный в виде строки, перед началом указанного элемента. |
protected void |
insertUpdate |
Обновляет структуру документа в результате вставки текста. |
void |
processHTMLFrameHyperlinkEvent |
Обрабатывает HyperlinkEvents, создаваемые документами во фрейме HTML. |
void |
setBase |
Задаёт расположение, относительно которого разрешаются относительные URL. |
void |
setInnerHTML |
Заменяет дочерние элементы указанного элемента содержимым, заданным в виде строки HTML. |
void |
setOuterHTML |
Заменяет указанный элемент в родительском элементе содержимым, заданным в виде строки HTML. |
void |
setParagraphAttributes |
Задаёт атрибуты абзаца. |
void |
setParser |
Задаёт анализатор, используемый методами вставки HTML в существующий документ, такими как setInnerHTML и setOuterHTML. |
void |
setPreservesUnknownTags |
Определяет, как анализатор обрабатывает неизвестные теги. |
void |
setTokenThreshold |
Задаёт количество токенов, которые буферизуются перед попыткой обновить структуру элементов документа. |
Методы, объявленные в классе DefaultStyledDocument
addDocumentListener, addStyle, getBackground, getCharacterElement, getDefaultRootElement, getFont, getForeground, getLogicalStyle, getParagraphElement, getStyle, getStyleNames, removeDocumentListener, removeElement, removeStyle, removeUpdate, setCharacterAttributes, setLogicalStyle, styleChanged | Модификатор и тип | Метод | Описание |
|---|---|---|
void |
addDocumentListener |
Добавляет прослушиватель документа для получения уведомлений о любых изменениях. |
Style |
addStyle |
Добавляет новый стиль в иерархию логических стилей. |
Color |
getBackground |
Получает цвет фона из набора атрибутов. |
Element |
getCharacterElement |
Получает символьный элемент по позиции. |
Element |
getDefaultRootElement() |
Получает корневой элемент по умолчанию. |
Font |
getFont |
Получает шрифт из набора атрибутов. |
Color |
getForeground |
Получает цвет переднего плана из набора атрибутов. |
Style |
getLogicalStyle |
Получает логический стиль, назначенный абзацу, представленному указанной позицией. |
Element |
getParagraphElement |
Получает элемент абзаца со смещением pos. |
Style |
getStyle |
Получает ранее добавленный именованный стиль. |
Enumeration |
getStyleNames() |
Получает список имён стилей. |
void |
removeDocumentListener |
Удаляет прослушиватель документа. |
void |
removeElement |
Удаляет элемент из этого документа. |
void |
removeStyle |
Удаляет именованный стиль, ранее добавленный в документ. |
protected void |
removeUpdate |
Обновляет структуру документа в результате удаления текста. |
void |
setCharacterAttributes |
Задаёт атрибуты для части документа. |
void |
setLogicalStyle |
Задаёт логический стиль для абзаца в указанной позиции. |
protected void |
styleChanged |
Вызывается при изменении любого стиля этого документа. |
Методы, объявленные в классе 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 |
Добавляет прослушиватель отмены действий для получения уведомлений о любых изменениях. |
Position |
createPosition |
Возвращает позицию, отслеживающую изменения при редактировании документа. |
void |
dump |
Выводит диагностическую информацию. |
protected void |
fireInsertUpdate |
Уведомляет всех прослушивателей, зарегистрировавших интерес к уведомлениям о событиях этого типа. |
protected void |
fireRemoveUpdate |
Уведомляет всех прослушивателей, зарегистрировавших интерес к уведомлениям о событиях этого типа. |
int |
getAsynchronousLoadPriority() |
Получает приоритет асинхронной загрузки. |
protected final AbstractDocument.AttributeContext |
getAttributeContext() |
Получает контекст для управления атрибутами. |
Element |
getBidiRootElement() |
Возвращает корневой элемент двунаправленной структуры этого документа. |
protected final AbstractDocument.Content |
getContent() |
Получает содержимое документа. |
protected final Thread |
getCurrentWriter() |
Получает текущий поток записи, если он есть. |
DocumentFilter |
getDocumentFilter() |
Возвращает DocumentFilter, отвечающий за фильтрацию вставки и удаления. |
DocumentListener[] |
getDocumentListeners() |
Возвращает массив всех прослушивателей документа, зарегистрированных в этом документе. |
Dictionary |
getDocumentProperties() |
Обеспечивает управление набором свойств. |
final Position |
getEndPosition() |
Возвращает позицию, соответствующую концу документа. |
int |
getLength() |
Возвращает длину данных. |
<T extends EventListener> |
getListeners |
Возвращает массив всех объектов, зарегистрированных в данный момент в качестве FooListenerов этого документа. |
final Object |
getProperty |
Вспомогательный метод для получения значения свойства. |
Element[] |
getRootElements() |
Получает все определённые корневые элементы. |
final Position |
getStartPosition() |
Возвращает позицию, соответствующую началу документа. |
String |
getText |
Получает последовательность текста из документа. |
void |
getText |
Получает текст, содержащийся в указанной части документа. |
UndoableEditListener[] |
getUndoableEditListeners() |
Возвращает массив всех прослушивателей редактирования с возможностью отмены, зарегистрированных в этом документе. |
void |
insertString |
Вставляет содержимое в документ. |
protected void |
postRemoveUpdate |
Обновляет структуру документа в результате удаления текста. |
final void |
putProperty |
Вспомогательный метод для сохранения значения свойства. |
final void |
readLock() |
Захватывает блокировку, чтобы начать чтение состояния документа. |
final void |
readUnlock() |
Снимает блокировку чтения. |
void |
remove |
Удаляет содержимое из документа. |
void |
removeUndoableEditListener |
Удаляет прослушиватель отмены действий. |
void |
render |
Позволяет безопасно отображать модель при наличии параллельных операций, если модель поддерживает асинхронное обновление. |
void |
replace |
Удаляет область текста от offset до offset + length и заменяет её на text. |
void |
setAsynchronousLoadPriority |
Задаёт приоритет асинхронной загрузки. |
void |
setDocumentFilter |
Задаёт DocumentFilter. |
void |
setDocumentProperties |
Заменяет словарь свойств этого документа. |
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 |
Указывает, равен ли другой объект этому объекту. |
protected void |
finalize() |
Устарел, планируется удаление: этот элемент API может быть удалён в будущей версии. Финализация объявлена устаревшей и может быть удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания. |
final void |
wait |
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
Подробное описание полей
AdditionalComments
public static final String AdditionalComments
- См. также:
Подробное описание конструкторов
HTMLDocument
public HTMLDocument()
StyleSheet по умолчанию. Это вспомогательный метод для конструктора HTMLDocument(Content, StyleSheet).HTMLDocument
public HTMLDocument(StyleSheet styles)
HTMLDocument(Content, StyleSheet).- Параметры:
-
styles— стили
HTMLDocument
public HTMLDocument(AbstractDocument.Content c, StyleSheet styles)
- Параметры:
-
c— контейнер содержимого -
styles— стили
Подробное описание методов
getReader
public HTMLEditorKit.ParserCallback getReader(int pos)
HTMLDocument.HTMLReader. При необходимости подклассы могут переопределить этот метод, чтобы изменить структуру документа. (Например, для обработки пользовательских тегов или структурного представления элементов символьного стиля.)- Параметры:
-
pos— начальная позиция - Возвращает:
- средство чтения, используемое анализатором для загрузки документа
getReader
public HTMLEditorKit.ParserCallback getReader(int pos, int popDepth, int pushDepth, HTML.Tag insertTag)
HTMLDocument.HTMLReader. При необходимости подклассы могут переопределить этот метод, чтобы изменить структуру документа. (Например, для обработки пользовательских тегов или структурного представления элементов символьного стиля.) Это вспомогательный метод для getReader(int, int, int, HTML.Tag, TRUE).
- Параметры:
-
pos— начальная позиция -
popDepth— количествоElementSpec.EndTagTypesдля создания перед вставкой -
pushDepth— количествоElementSpec.StartTagTypesс направлениемElementSpec.JoinNextDirection, которые следует создать перед вставкой, но после создания конечных тегов -
insertTag— первый тег, с которого начинается вставка в документ - Возвращает:
- средство чтения, используемое анализатором для загрузки документа
getBase
public URL getBase()
- Возвращает:
- базовое расположение
setBase
public void setBase(URL u)
Кроме того, базовое расположение для 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)
- Параметры:
-
t— запрошенныйHTML.Tag - Возвращает:
Iteratorдля заданного HTML-тега- См. также:
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)
- Параметры:
-
preservesTags— true, если неизвестные теги следует сохранять в модели; в противном случае теги отбрасываются - См. также:
getPreservesUnknownTags
public boolean getPreservesUnknownTags()
- Возвращает:
- true, если неизвестные теги следует сохранять при анализе
- См. также:
processHTMLFrameHyperlinkEvent
public void processHTMLFrameHyperlinkEvent(HTMLFrameHyperlinkEvent e)
HyperlinkEvents, генерируемые документами во фрейме HTML. Тип HyperlinkEvent, как следует из параметра, — HTMLFrameHyperlinkEvent. Помимо типичной информации, содержащейся в HyperlinkEvent, это событие содержит элемент, соответствующий фрейму, в котором произошел щелчок (исходный элемент), и целевое имя. Целевое имя может иметь одно из четырех значений: - _self
- _parent
- _top
- именованный фрейм
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)
setInnerHTML и setOuterHTML. HTMLEditorKit.createDefaultDocument задает анализатор автоматически. Если вы создаете HTMLDocument вручную, не забудьте соответствующим образом задать анализатор.
- Параметры:
-
parser— анализатор, используемый для вставки текста - Начиная с:
- 1.3
getParser
public HTMLEditorKit.Parser getParser()
- Возвращает:
- анализатор, используемый для вставки текста
- Начиная с:
- 1.3
setInnerHTML
public void setInnerHTML(Element elem, String htmlText) throws BadLocationException, IOException
Это приведет как минимум к двум событиям: 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
Это приведет как минимум к двум событиям: 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
Рассмотрим следующую структуру (параметр 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
Если дочерние элементы 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
Рассмотрим следующую структуру (параметр 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
Рассмотрим следующую структуру (параметр 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
- См. также:
getElement
public Element getElement(Element e, Object attribute, Object value)
e, содержащий атрибут attribute со значением value, или null, если такой элемент не найден. Этот метод не является потокобезопасным.- Параметры:
-
e— корневой элемент, с которого начинается поиск -
attribute— нужныйAttribute -
value— значения для указанногоAttribute - Возвращает:
- элемент с указанными
Attributeиvalueлибоnull, если он не найден - Начиная с:
- 1.3
- См. также:
fireChangedUpdate
protected void fireChangedUpdate(DocumentEvent e)
- Переопределяет:
-
fireChangedUpdateв классеAbstractDocument - Параметры:
-
e— событие - См. также:
fireUndoableEditUpdate
protected void fireUndoableEditUpdate(UndoableEditEvent e)
- Переопределяет:
-
fireUndoableEditUpdateв классеAbstractDocument - Параметры:
-
e— событие - См. также:
© 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.