Класс HTMLDocument.HTMLReader
- Внешний класс:
HTMLDocument
public class HTMLDocument.HTMLReader extends HTMLEditorKit.ParserCallback
Средство чтения можно настроить, зарегистрировав действия (типа HTMLDocument.HTMLReader.TagAction), описывающие обработку каждого действия. Предоставленные действия основаны на идее, что наиболее естественные операции редактирования текста можно реализовать, если структура элементов сводится к абзацам, содержащим фрагменты текста с некоторым стилем. Некоторые элементы естественнее задавать структурно, поэтому над абзацами следует разрешить произвольную структуру, однако редактировать её потребуется с помощью структурных действий. Это означает, что некоторые HTML-элементы, заданные в анализируемом потоке, будут преобразованы в атрибуты, а в некоторых случаях будут созданы абзацы. Когда HTML-элементы преобразуются в атрибуты, ключ атрибута имеет тип HTML.Tag, а значение — тип AttributeSet, поэтому информация не теряется. Благодаря этому многие существующие действия работают так, что пользователь может вводить текст, нажимать клавишу Return, Backspace, Delete и т. д. и получать ожидаемый результат. Можно создавать выделения, применять или удалять атрибуты и т. д. С учётом этого работу средства чтения можно разделить на следующие типы задач:
- Блок
- Создать структуру в соответствии с заданной в потоке. В результате создаются элементы, содержащие другие элементы.
- Абзац
- Подобно блоку, но предполагается, что элемент будет использоваться с представлением абзаца, поэтому создавать элемент абзаца не потребуется.
- Символьный
- Добавить элемент в качестве атрибута, который может начинаться и заканчиваться в произвольных позициях текста. В конечном итоге он будет объединён с фрагментом текста и всеми текущими уплощёнными символьными HTML-элементами.
- Специальный
- Создать встроенный графический элемент.
- Форма
- Создать элемент, подобный встроенному графическому элементу, но также связанный с моделью компонента.
- Скрытый
- Создать элемент, скрытый при просмотре документа только для чтения и видимый при редактировании документа. Это позволяет сохранить информацию в модели и используется для хранения таких данных, как комментарии и нераспознанные теги.
В настоящее время <APPLET>, <PARAM>, <MAP>, <AREA>, <LINK>, <SCRIPT> и <STYLE> не поддерживаются.
Назначение описанных действий для тегов, определённых в HTML.Tag, показано в следующей таблице.
| Тег | Действие |
|---|---|
HTML.Tag.A |
CharacterAction |
HTML.Tag.ADDRESS |
CharacterAction |
HTML.Tag.APPLET |
HiddenAction |
HTML.Tag.AREA |
AreaAction |
HTML.Tag.B |
CharacterAction |
HTML.Tag.BASE |
BaseAction |
HTML.Tag.BASEFONT |
CharacterAction |
HTML.Tag.BIG |
CharacterAction |
HTML.Tag.BLOCKQUOTE |
BlockAction |
HTML.Tag.BODY |
BlockAction |
HTML.Tag.BR |
SpecialAction |
HTML.Tag.CAPTION |
BlockAction |
HTML.Tag.CENTER |
BlockAction |
HTML.Tag.CITE |
CharacterAction |
HTML.Tag.CODE |
CharacterAction |
HTML.Tag.DD |
BlockAction |
HTML.Tag.DFN |
CharacterAction |
HTML.Tag.DIR |
BlockAction |
HTML.Tag.DIV |
BlockAction |
HTML.Tag.DL |
BlockAction |
HTML.Tag.DT |
ParagraphAction |
HTML.Tag.EM |
CharacterAction |
HTML.Tag.FONT |
CharacterAction |
HTML.Tag.FORM |
По состоянию на версию 1.4 — BlockAction |
HTML.Tag.FRAME |
SpecialAction |
HTML.Tag.FRAMESET |
BlockAction |
HTML.Tag.H1 |
ParagraphAction |
HTML.Tag.H2 |
ParagraphAction |
HTML.Tag.H3 |
ParagraphAction |
HTML.Tag.H4 |
ParagraphAction |
HTML.Tag.H5 |
ParagraphAction |
HTML.Tag.H6 |
ParagraphAction |
HTML.Tag.HEAD |
HeadAction |
HTML.Tag.HR |
SpecialAction |
HTML.Tag.HTML |
BlockAction |
HTML.Tag.I |
CharacterAction |
HTML.Tag.IMG |
SpecialAction |
HTML.Tag.INPUT |
FormAction |
HTML.Tag.ISINDEX |
IsndexAction |
HTML.Tag.KBD |
CharacterAction |
HTML.Tag.LI |
BlockAction |
HTML.Tag.LINK |
LinkAction |
HTML.Tag.MAP |
MapAction |
HTML.Tag.MENU |
BlockAction |
HTML.Tag.META |
MetaAction |
HTML.Tag.NOFRAMES |
BlockAction |
HTML.Tag.OBJECT |
SpecialAction |
HTML.Tag.OL |
BlockAction |
HTML.Tag.OPTION |
FormAction |
HTML.Tag.P |
ParagraphAction |
HTML.Tag.PARAM |
HiddenAction |
HTML.Tag.PRE |
PreAction |
HTML.Tag.SAMP |
CharacterAction |
HTML.Tag.SCRIPT |
HiddenAction |
HTML.Tag.SELECT |
FormAction |
HTML.Tag.SMALL |
CharacterAction |
HTML.Tag.STRIKE |
CharacterAction |
HTML.Tag.S |
CharacterAction |
HTML.Tag.STRONG |
CharacterAction |
HTML.Tag.STYLE |
StyleAction |
HTML.Tag.SUB |
CharacterAction |
HTML.Tag.SUP |
CharacterAction |
HTML.Tag.TABLE |
BlockAction |
HTML.Tag.TD |
BlockAction |
HTML.Tag.TEXTAREA |
FormAction |
HTML.Tag.TH |
BlockAction |
HTML.Tag.TITLE |
TitleAction |
HTML.Tag.TR |
BlockAction |
HTML.Tag.TT |
CharacterAction |
HTML.Tag.U |
CharacterAction |
HTML.Tag.UL |
BlockAction |
HTML.Tag.VAR |
CharacterAction |
После встречи </html> уведомления действиям больше не отправляются.
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
class |
HTMLDocument.HTMLReader.BlockAction |
Действие, назначенное по умолчанию для обработки задачи блока средства чтения. |
class |
HTMLDocument.HTMLReader.CharacterAction |
Действие, назначенное по умолчанию для обработки символьной задачи средства чтения. |
class |
HTMLDocument.HTMLReader.FormAction |
Действие для поддержки форм, создающее все элементы, используемые для представления элементов управления формы. |
class |
HTMLDocument.HTMLReader.HiddenAction |
Действие, назначенное по умолчанию для обработки скрытой задачи средства чтения. |
class |
HTMLDocument.HTMLReader.IsindexAction |
Действие, назначенное по умолчанию для обработки задачи Isindex средства чтения. |
class |
HTMLDocument.HTMLReader.ParagraphAction |
Действие, назначенное по умолчанию для обработки задачи абзаца средства чтения. |
class |
HTMLDocument.HTMLReader.PreAction |
Действие, назначенное по умолчанию для обработки задачи блока Pre средства чтения. |
class |
HTMLDocument.HTMLReader.SpecialAction |
Действие, назначенное по умолчанию для обработки специальной задачи средства чтения. |
class |
HTMLDocument.HTMLReader.TagAction |
Действие, выполняемое при разборе тега. |
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected MutableAttributeSet |
charAttr |
Текущий набор символьных атрибутов. |
protected Vector |
parseBuffer |
Буфер для накопления создаваемых элементов. |
Поля, объявленные в классе HTMLEditorKit.ParserCallback
IMPLIED
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
HTMLReader |
Создаёт HTMLReader с глубиной извлечения и добавления по умолчанию и без тега для вставки. |
HTMLReader |
Создаёт HTMLReader. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
protected void |
addContent |
Добавляет текст с текущими символьными атрибутами. |
protected void |
addContent |
Добавляет текст с текущими символьными атрибутами. |
protected void |
addSpecialElement |
Добавляет содержимое, которое практически полностью задаётся набором атрибутов. |
protected void |
blockClose |
Добавляет в буфер разбора инструкцию закрыть блочный элемент указанного типа. |
protected void |
blockOpen |
Добавляет в буфер разбора инструкцию создать блочный элемент с указанными атрибутами. |
void |
flush() |
Последний метод, вызываемый для средства чтения. |
void |
handleEndOfLineString |
Вызывается после разбора потока, но до flush. |
void |
handleEndTag |
Обратный вызов парсера. |
void |
handleSimpleTag |
Обратный вызов парсера. |
void |
handleStartTag |
Обратный вызов парсера. |
void |
handleText |
Вызывается парсером, чтобы сообщить об обнаружении блока текста. |
protected void |
popCharacterStyle() |
Извлекает из стека ранее помещённый символьный стиль, возвращая предыдущий стиль. |
protected void |
preContent |
Добавляет указанное содержимое, обнаруженное в элементе PRE. |
protected void |
pushCharacterStyle() |
Помещает текущий символьный стиль в стек для подготовки к созданию нового вложенного символьного стиля. |
protected void |
registerTag |
Регистрирует обработчик для указанного тега. |
protected void |
textAreaContent |
Добавляет указанное содержимое в документ текстовой области. |
Методы, объявленные в классе HTMLEditorKit.ParserCallback
handleComment, handleError
Подробное описание полей
parseBuffer
protected Vector<DefaultStyledDocument.ElementSpec> parseBuffer
charAttr
protected MutableAttributeSet charAttr
Подробное описание конструкторов
HTMLReader
public HTMLReader(int offset)
- Параметры:
-
offset— начальное смещение
HTMLReader
public HTMLReader(int offset, int popDepth, int pushDepth, HTML.Tag insertTag)
- Параметры:
-
offset— начальное смещение -
popDepth— количество родительских элементов, на которые нужно подняться перед вставкой нового элемента -
pushDepth— количество родительских элементов, на которые нужно спуститься (относительно popDepth) перед вставкой -
insertTag— вставляемый тег (может быть null)
Подробное описание методов
flush
public void flush() throws BadLocationException
- Переопределяет:
-
flushв классеHTMLEditorKit.ParserCallback - Вызывает исключение:
-
BadLocationException— если указанная позиция не соответствует допустимому месту в связанном документе.
handleText
public void handleText(char[] data, int pos)
- Переопределяет:
-
handleTextв классеHTMLEditorKit.ParserCallback - Параметры:
-
data— данные -
pos— позиция
handleStartTag
public void handleStartTag(HTML.Tag t, MutableAttributeSet a, int pos)
- Переопределяет:
-
handleStartTagв классеHTMLEditorKit.ParserCallback - Параметры:
-
t— HTML-тег -
a— набор атрибутов -
pos— позиция
handleEndTag
public void handleEndTag(HTML.Tag t, int pos)
- Переопределяет:
-
handleEndTagв классеHTMLEditorKit.ParserCallback - Параметры:
-
t— HTML-тег -
pos— позиция
handleSimpleTag
public void handleSimpleTag(HTML.Tag t, MutableAttributeSet a, int pos)
- Переопределяет:
-
handleSimpleTagв классеHTMLEditorKit.ParserCallback - Параметры:
-
t— HTML-тег -
a— набор атрибутов -
pos— позиция
handleEndOfLineString
public void handleEndOfLineString(String eol)
flush. eol принимает значение \n, \r или \r\n — в зависимости от того, какая последовательность чаще всего встречается при разборе потока.- Переопределяет:
-
handleEndOfLineStringв классеHTMLEditorKit.ParserCallback - Параметры:
-
eol— значение eol - С версии:
- 1.3
registerTag
protected void registerTag(HTML.Tag t, HTMLDocument.HTMLReader.TagAction a)
- Параметры:
-
t— HTML-тег -
a— обработчик действий для тега
pushCharacterStyle
protected void pushCharacterStyle()
popCharacterStyle
protected void popCharacterStyle()
textAreaContent
protected void textAreaContent(char[] data)
- Параметры:
-
data— указанное содержимое
preContent
protected void preContent(char[] data)
- Параметры:
-
data— указанное содержимое
blockOpen
protected void blockOpen(HTML.Tag t, MutableAttributeSet attr)
- Параметры:
-
t— HTML-тег -
attr— набор атрибутов
blockClose
protected void blockClose(HTML.Tag t)
- Параметры:
-
t— HTML-тег
addContent
protected void addContent(char[] data, int offs, int length)
- Параметры:
-
data— добавляемое содержимое -
offs— начальное смещение -
length— длина
addContent
protected void addContent(char[] data, int offs, int length, boolean generateImpliedPIfNecessary)
- Параметры:
-
data— добавляемое содержимое -
offs— начальное смещение -
length— длина -
generateImpliedPIfNecessary— следует ли создавать неявные абзацы
addSpecialElement
protected void addSpecialElement(HTML.Tag t, MutableAttributeSet a)
- Параметры:
-
t— HTML-тег -
a— набор атрибутов
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/javax/swing/text/html/HTMLDocument.HTMLReader.html