Класс HTMLDocument.HTMLReader
- Вложенный класс:
HTMLDocument
public class HTMLDocument.HTMLReader extends HTMLEditorKit.ParserCallback
Чтец можно настроить, зарегистрировав действия (типа HTMLDocument.HTMLReader.TagAction), которые описывают, как обрабатывать действие. Идея, стоящая за предоставляемыми действиями, заключается в том, что самые естественные операции редактирования текста могут быть предоставлены, если структура элементов сводится к абзацам с последовательностями некоторого типа стиля. Некоторые вещи более естественно задавать структурно, поэтому произвольную структуру следует разрешить над абзацами, но её потребуется редактировать с помощью структурных действий. Это означает, что некоторые HTML-элементы, указанные в анализируемом потоке, будут свёрнуты в атрибуты, а в некоторых случаях будут синтезированы абзацы. Когда HTML-элементы были преобразованы в атрибуты, ключ атрибута будет типа HTML.Tag, а значение будет типа AttributeSet, чтобы не потерять никакой информации. Это позволяет многим существующим действиям работать таким образом, что пользователь может вводить текст, нажимать клавишу Enter, 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 |
As of 1.4 a 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 |
Буфер для дальнейшего построения элементов. |
Поля, объявленные в классе javax.swing.text.html.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 |
Добавляет указанный контент в документ textarea. |
Методы, объявленные в классе javax.swing.text.html.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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/javax/swing/text/html/HTMLDocument.HTMLReader.html