Spec-Zone.ru › OpenJDK 21

Класс HTMLEditorKit

java.lang.Object
javax.swing.text.EditorKit
javax.swing.text.DefaultEditorKit
javax.swing.text.StyledEditorKit
javax.swing.text.html.HTMLEditorKit
Все реализованные интерфейсы:
Serializable, Cloneable, Accessible
public class HTMLEditorKit extends StyledEditorKit implements Accessible
Компонент Swing JEditorPane поддерживает различные типы содержимого с помощью механизма подключаемых модулей, называемого EditorKit. Поскольку HTML — очень популярный формат содержимого, предусмотрена некоторая поддержка по умолчанию. Поддержка по умолчанию предоставляется этим классом, который поддерживает HTML версии 3.2 (с некоторыми расширениями) и переходит к версии 4.0. Тег <applet> не поддерживается, но для тега <object> предусмотрена некоторая поддержка.

Преследуются несколько целей HTML EditorKit, которые влияют на способ моделирования HTML. Эти цели существенно повлияли на его дизайн.

Поддержка редактирования
Возможно, очевидно, что плагин для JEditorPane должен обеспечивать поддержку редактирования, но этот факт имеет несколько соображений по проектированию. Существует значительное количество HTML-документов, которые не соответствуют спецификации HTML. Эти документы должны быть несколько нормализованы, чтобы их можно было редактировать. Кроме того, пользователи не любят излишние изменения структуры, поэтому предпочтительнее использовать традиционные жесты редактирования текста, а не точную структуру HTML, определённую в HTML-документе.

Моделирование HTML обеспечивается классом HTMLDocument. Его документация описывает подробности моделирования HTML. Поддержка редактирования в значительной степени опирается на пакет text.

Расширяемость/Масштабируемость
Для максимальной полезности этого набора в него вложены значительные усилия по обеспечению расширяемости. Вот некоторые из его особенностей.
  1. Парсер заменяемый. По умолчанию используется парсер Hot Java, основанный на DTD. Можно использовать другой DTD или совершенно другой парсер. Чтобы изменить парсер, переопределите метод getParser. Парсер по умолчанию динамически загружается при первом запросе, поэтому файлы класса никогда не будут загружены, если используется альтернативный парсер. Парсер по умолчанию находится в отдельном пакете, называемом parser, ниже этого пакета.
  2. Парсер управляет ParserCallback, который предоставляется HTMLDocument. Чтобы изменить обратный вызов, создайте подкласс HTMLDocument и переопределите метод createDefaultDocument для возврата документа, который создаёт другой reader. Чтение управляет структурой документа. Хотя Document по умолчанию поддерживает HTML, ничего не мешает поддержке тегов, не являющихся HTML, которые приводят к альтернативным структурам элементов.
  3. Представления моделей по умолчанию предоставляются в виде иерархии реализаций View, поэтому можно легко настроить отображение определённого элемента или добавить возможности для новых типов элементов путём предоставления новых реализаций View. Стандартный набор представлений предоставляется классом HTMLFactory. Это легко изменить, создав подкласс или заменив HTMLFactory и переопределив метод getViewFactory для возврата альтернативного фабрики.
  4. Реализации View работают в основном с атрибутами CSS, которые хранятся в представлениях. Это позволяет иметь несколько представлений, сопоставленных с одной моделью, которые выглядят существенно по-разному. Это особенно полезно для печати. Для большинства атрибутов HTML атрибуты HTML преобразуются в атрибуты CSS для отображения. Это помогает сделать реализации View более универсальными
Асинхронная загрузка
Более крупные документы включают много парсинга и занимают некоторое время для загрузки. По умолчанию этот набор создаёт документы, которые будут загружаться асинхронно, если они загружаются с использованием JEditorPane.setPage. Это контролируется свойством в документе. Метод createDefaultDocument может быть переопределён для изменения этого. Разбиение работы выполняется классом HTMLDocument.HTMLReader. Фактическая работа выполняется классами DefaultStyledDocument и AbstractDocument в пакете text.
Настройка с текущим LAF
HTML предоставляет хорошо известный набор функций без точного указания характеристик отображения. Swing имеет механизм темы для своих реализаций внешнего вида и ощущения. Желательно, чтобы внешний вид и ощущение передавали характеристики отображения в представления HTML. Пользователь с плохим зрением, например, захочет высокий контраст и шрифты большего размера, чем обычно.

Поддержка этого обеспечивается классом StyleSheet. Представление HTML может сильно зависеть от установки свойства StyleSheet на EditorKit.

Без потерь
EditorKit имеет возможность чтения и сохранения документов. Для пользователей обычно лучше, если при этих операциях не происходит потерь данных. Политика HTMLEditorKit заключается в том, чтобы хранить элементы, которые не распознаются или не обязательно отображаются, чтобы их можно было впоследствии записать. Модель HTML-документа, следовательно, должна содержать всю информацию, обнаруженную при чтении документа. Это ограничено необходимостью поддержки редактирования (т. е. иногда требуется нормализация некорректных документов). Основной принцип заключается в том, что информация не должна теряться, но она может быть синтезирована для создания более корректной модели или может быть переупорядочена.

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

Модификатор и тип Класс Описание
static class  HTMLEditorKit.HTMLFactory
Фабрика для создания представлений HTML.
static class  HTMLEditorKit.HTMLTextAction
Абстрактное действие, предоставляющее удобные методы для вставки HTML в существующий документ.
static class  HTMLEditorKit.InsertHTMLTextAction
InsertHTMLTextAction может использоваться для вставки произвольной строки HTML в существующий HTML-документ.
static class  HTMLEditorKit.LinkController
Класс для наблюдения за связанным компонентом и срабатывания событий гиперссылок при необходимости.
static class  HTMLEditorKit.Parser
Интерфейс, поддерживаемый анализатором.
static class  HTMLEditorKit.ParserCallback
Результат анализа управляет этими методами обратного вызова.

Вложенные классы/интерфейсы, объявленные в классе javax.swing.text.StyledEditorKit

StyledEditorKit.AlignmentAction, StyledEditorKit.BoldAction, StyledEditorKit.FontFamilyAction, StyledEditorKit.FontSizeAction, StyledEditorKit.ForegroundAction, StyledEditorKit.ItalicAction, StyledEditorKit.StyledTextAction, StyledEditorKit.UnderlineAction

Вложенные классы/интерфейсы, объявленные в классе javax.swing.text.DefaultEditorKit

DefaultEditorKit.BeepAction, DefaultEditorKit.CopyAction, DefaultEditorKit.CutAction, DefaultEditorKit.DefaultKeyTypedAction, DefaultEditorKit.InsertBreakAction, DefaultEditorKit.InsertContentAction, DefaultEditorKit.InsertTabAction, DefaultEditorKit.PasteAction

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

Модификатор и тип Поле Описание
static final String BOLD_ACTION
Идентификатор действия «полужирный»
static final String COLOR_ACTION
Идентификатор действия выбора цвета. Цвет передаётся в качестве аргумента.
static final String DEFAULT_CSS
Файл с таблицей стилей по умолчанию, который настраивает представления тегов.
static final String FONT_CHANGE_BIGGER
Идентификатор действия увеличения размера шрифта на следующее значение.
static final String FONT_CHANGE_SMALLER
Идентификатор действия уменьшения размера шрифта на следующее значение.
static final String IMG_ALIGN_BOTTOM
Выравнивание изображений по нижнему краю.
static final String IMG_ALIGN_MIDDLE
Выравнивание изображений по центру.
static final String IMG_ALIGN_TOP
Выравнивание изображений по верхнему краю.
static final String IMG_BORDER
Выравнивание изображений по границе.
static final String ITALIC_ACTION
Идентификатор действия «курсив»
static final String LOGICAL_STYLE_ACTION
Идентификатор действия логического выбора стиля. Логический стиль передаётся в качестве аргумента.
static final String PARA_INDENT_LEFT
Идентификатор действия отступа абзаца слева.
static final String PARA_INDENT_RIGHT
Идентификатор действия отступа абзаца справа.

Поля, объявленные в классе javax.swing.text.DefaultEditorKit

backwardAction, beepAction, beginAction, beginLineAction, beginLineUpAction, beginParagraphAction, beginWordAction, copyAction, cutAction, defaultKeyTypedAction, deleteNextCharAction, deleteNextWordAction, deletePrevCharAction, deletePrevWordAction, downAction, endAction, endLineAction, endLineDownAction, EndOfLineStringProperty, endParagraphAction, endWordAction, forwardAction, insertBreakAction, insertContentAction, insertTabAction, nextWordAction, pageDownAction, pageUpAction, pasteAction, previousWordAction, readOnlyAction, selectAllAction, selectionBackwardAction, selectionBeginAction, selectionBeginLineAction, selectionBeginParagraphAction, selectionBeginWordAction, selectionDownAction, selectionEndAction, selectionEndLineAction, selectionEndParagraphAction, selectionEndWordAction, selectionForwardAction, selectionNextWordAction, selectionPreviousWordAction, selectionUpAction, selectLineAction, selectParagraphAction, selectWordAction, upAction, writableAction

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

Конструктор Описание
HTMLEditorKit()
Создаёт HTMLEditorKit, создаёт StyleContext и загружает таблицу стилей.

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

Модификатор и тип Метод Описание
Object clone()
Создаёт копию редактора.
Document createDefaultDocument()
Создаёт неинициализированную модель хранения текста, соответствующую данному типу редактора.
protected void createInputAttributes(Element element, MutableAttributeSet set)
Копирует пары ключ/значение в AttributeSet element в set.
void deinstall(JEditorPane c)
Вызывается при удалении редактора из JEditorPane.
AccessibleContext getAccessibleContext()
Возвращает AccessibleContext, связанный с этим редактором.
Action[] getActions()
Получает список команд для редактора.
String getContentType()
Получает MIME-тип данных, поддерживаемых этим китом.
Cursor getDefaultCursor()
Возвращает курсор по умолчанию.
MutableAttributeSet getInputAttributes()
Получает атрибуты ввода, используемые для действий по форматированию редактора.
Cursor getLinkCursor()
Возвращает курсор, используемый над гиперссылками.
protected HTMLEditorKit.Parser getParser()
Получает анализатор для чтения потоков HTML.
StyleSheet getStyleSheet()
Получает набор стилей, используемых для отображения элементов HTML.
ViewFactory getViewFactory()
Получает фабрику, подходящую для создания представлений любых моделей, создаваемых этим китом.
void insertHTML(HTMLDocument doc, int offset, String html, int popDepth, int pushDepth, HTML.Tag insertTag)
Вставляет HTML в существующий документ.
void install(JEditorPane c)
Вызывается при установке кита в JEditorPane.
boolean isAutoFormSubmission()
Указывает, обрабатывается ли отправка формы HTML автоматически или срабатывает только FormSubmitEvent.
void read(Reader in, Document doc, int pos)
Вставляет содержимое из заданного потока.
void setAutoFormSubmission(boolean isAuto)
Устанавливает, обрабатывается ли отправка формы HTML автоматически или срабатывает только FormSubmitEvent.
void setDefaultCursor(Cursor cursor)
Устанавливает курсор по умолчанию.
void setLinkCursor(Cursor cursor)
Устанавливает курсор, используемый над ссылками.
void setStyleSheet(StyleSheet s)
Устанавливает набор стилей, используемых для отображения различных элементов HTML.
void write(Writer out, Document doc, int pos, int len)
Записывает содержимое документа в заданный поток в формате, соответствующем этому обработчику содержимого.

Методы, объявленные в классе javax.swing.text.StyledEditorKit

getCharacterAttributeRun

Методы, объявленные в классе javax.swing.text.DefaultEditorKit

createCaret, read, write

Методы, объявленные в классе java.lang.Object

equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

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

DEFAULT_CSS

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

BOLD_ACTION

public static final String BOLD_ACTION
Идентификатор действия «Жирный»
См. также:
  • Значения константных полей

ITALIC_ACTION

public static final String ITALIC_ACTION
Идентификатор действия «Курсив»
См. также:
  • Значения константных полей

PARA_INDENT_LEFT

public static final String PARA_INDENT_LEFT
Идентификатор действия отступа абзаца влево
См. также:
  • Значения константных полей

PARA_INDENT_RIGHT

public static final String PARA_INDENT_RIGHT
Идентификатор действия отступа абзаца вправо
См. также:
  • Значения константных полей

FONT_CHANGE_BIGGER

public static final String FONT_CHANGE_BIGGER
Идентификатор действия увеличения размера шрифта на следующую величину
См. также:
  • Значения константных полей

FONT_CHANGE_SMALLER

public static final String FONT_CHANGE_SMALLER
Идентификатор действия уменьшения размера шрифта на следующую величину
См. также:
  • Значения константных полей

COLOR_ACTION

public static final String COLOR_ACTION
Идентификатор действия выбора цвета. Цвет передается в качестве аргумента
См. также:
  • Значения константных полей

LOGICAL_STYLE_ACTION

public static final String LOGICAL_STYLE_ACTION
Идентификатор действия выбора логического стиля. Логический стиль передается как аргумент
См. также:
  • Значения константных полей

IMG_ALIGN_TOP

public static final String IMG_ALIGN_TOP
Выравнивание изображений по верхнему краю.
См. также:
  • Значения константных полей

IMG_ALIGN_MIDDLE

public static final String IMG_ALIGN_MIDDLE
Выравнивание изображений по центру.
См. также:
  • Значения константных полей

IMG_ALIGN_BOTTOM

public static final String IMG_ALIGN_BOTTOM
Выравнивание изображений по нижнему краю.
См. также:
  • Значения константных полей

IMG_BORDER

public static final String IMG_BORDER
Выравнивание изображений по границе.
См. также:
  • Значения константных полей

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

HTMLEditorKit

public HTMLEditorKit()
Создаёт HTMLEditorKit, создаёт StyleContext и загружает таблицу стилей.

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

getContentType

public String getContentType()
Получить MIME-тип данных, поддерживаемых этим китом. Этот кит поддерживает тип text/html.
Переопределяет:
getContentType в классе DefaultEditorKit
Возвращает:
тип

getViewFactory

public ViewFactory getViewFactory()
Получить фабрику, подходящую для создания представлений любых моделей, созданных этим китом.
Переопределяет:
getViewFactory в классе StyledEditorKit
Возвращает:
фабрику

createDefaultDocument

public Document createDefaultDocument()
Создать неинициализированную модель хранилища текста, подходящую для этого типа редактора.
Переопределяет:
createDefaultDocument в классе StyledEditorKit
Возвращает:
модель

read

public void read(Reader in, Document doc, int pos) throws IOException, BadLocationException
Вставляет содержимое из указанного потока. Если doc является экземпляром HTMLDocument, это будет читать HTML 3.2 текст. Вставка HTML в непустой документ должна происходить внутри элемента body. Если вставка не происходит в body, будет брошено исключение. При вставке в непустой документ все теги вне body (head, title) будут удалены.
Переопределяет:
read в классе DefaultEditorKit
Параметры:
in - поток для чтения
doc - место назначения для вставки
pos - позиция в документе для размещения содержимого
Исключения:
IOException - при любой ошибке ввода/вывода
BadLocationException - если pos представляет недопустимое расположение в документе
RuntimeException - (в конечном итоге BadLocationException) если pos недействителен

insertHTML

public void insertHTML(HTMLDocument doc, int offset, String html, int popDepth, int pushDepth, HTML.Tag insertTag) throws BadLocationException, IOException
Вставляет HTML в существующий документ.
Параметры:
doc - документ для вставки
offset - смещение для вставки HTML
html - строка HTML
popDepth - количество ElementSpec.EndTagTypes для генерации перед вставкой
pushDepth - количество ElementSpec.StartTagTypes с направлением ElementSpec.JoinNextDirection, которое должно быть сгенерировано перед вставкой, но после генерации закрывающих тегов
insertTag - первый тег для начала вставки в документ
Исключения:
BadLocationException - если offset недействителен
IOException - при ошибке ввода/вывода
RuntimeException - (в конечном итоге BadLocationException) если pos недействителен

write

public void write(Writer out, Document doc, int pos, int len) throws IOException, BadLocationException
Записать содержимое документа в указанный поток в формате, подходящем для этого обработчика содержимого.
Переопределяет:
write в классе DefaultEditorKit
Параметры:
out - поток для записи
doc - источник для записи
pos - позиция в документе для извлечения содержимого
len - количество для записи
Исключения:
IOException - при любой ошибке ввода/вывода
BadLocationException - если pos представляет недопустимое расположение в документе

install

public void install(JEditorPane c)
Вызывается при установке кита в JEditorPane.
Переопределяет:
install в классе StyledEditorKit
Параметры:
c - JEditorPane

deinstall

public void deinstall(JEditorPane c)
Вызывается при удалении кита из JEditorPane. Используется для отмены регистрации любых слушателей, которые были добавлены.
Переопределяет:
deinstall в классе StyledEditorKit
Параметры:
c - JEditorPane

setStyleSheet

public void setStyleSheet(StyleSheet s)
Установите набор стилей, используемых для отображения различных HTML-элементов. Эти стили задаются в терминах спецификаций CSS. Каждый документ, созданный набором, будет иметь копию листа, к которому можно добавить стили, специфичные для документа. По умолчанию указанный StyleSheet используется всеми экземплярами HTMLEditorKit. Это должно быть переопределено для обеспечения более тонкой гранулярности, если это необходимо.
Параметры:
s - StyleSheet

getStyleSheet

public StyleSheet getStyleSheet()
Получить набор стилей, используемых в настоящее время для отображения HTML-элементов. По умолчанию загружается ресурс, указанный в DEFAULT_CSS, и он используется всеми экземплярами HTMLEditorKit.
Возвращает:
StyleSheet

getActions

public Action[] getActions()
Извлекает список команд для редактора. Это список команд, поддерживаемых суперклассом, дополненный набором команд, определенных локально для операций со стилями.
Переопределяет:
getActions в классе StyledEditorKit
Возвращает:
список команд

createInputAttributes

protected void createInputAttributes(Element element, MutableAttributeSet set)
Копирует пары ключ/значение в element AttributeSet в set. Это не копирует атрибуты компонента, значка или имени элемента. Подклассы могут захотеть уточнить, что копируется, а что нет. Но убедитесь, что сначала удалены все атрибуты, которые находятся в set.

Это вызывается каждый раз, когда курсор перемещается в другое место.

Переопределяет:
createInputAttributes в классе StyledEditorKit
Параметры:
element - элемент
set - атрибуты

getInputAttributes

public MutableAttributeSet getInputAttributes()
Получить атрибуты ввода, используемые для операций форматированного редактирования.
Переопределяет:
getInputAttributes в классе StyledEditorKit
Возвращает:
набор атрибутов

setDefaultCursor

public void setDefaultCursor(Cursor cursor)
Устанавливает курсор по умолчанию.
Параметры:
cursor - курсор
С:
1.3

getDefaultCursor

public Cursor getDefaultCursor()
Возвращает курсор по умолчанию.
Возвращает:
курсор
С:
1.3

setLinkCursor

public void setLinkCursor(Cursor cursor)
Устанавливает курсор для использования над ссылками.
Параметры:
cursor - курсор
С:
1.3

getLinkCursor

public Cursor getLinkCursor()
Возвращает курсор для использования над гиперссылками.
Возвращает:
курсор
С:
1.3

isAutoFormSubmission

public boolean isAutoFormSubmission()
Указывает, обрабатывается ли отправка HTML-формы автоматически или срабатывает только FormSubmitEvent.
Возвращает:
true, если отправка HTML-формы обрабатывается автоматически, false в противном случае.
С:
1.5
См. также:
  • setAutoFormSubmission(boolean)

setAutoFormSubmission

public void setAutoFormSubmission(boolean isAuto)
Указывает, обрабатывается ли отправка HTML-формы автоматически или срабатывает только FormSubmitEvent. По умолчанию установлено значение true.
Параметры:
isAuto - если true, отправка HTML-формы обрабатывается автоматически.
С:
1.5
См. также:
  • isAutoFormSubmission()
  • FormSubmitEvent

clone

public Object clone()
Создает копию редактора набора.
Переопределяет:
clone в классе StyledEditorKit
Возвращает:
копию
См. также:
  • Cloneable

getParser

protected HTMLEditorKit.Parser getParser()
Получить парсер для чтения потоков HTML. Это можно переопределить, чтобы использовать другой парсер. Реализация по умолчанию загружается динамически, чтобы избежать накладных расходов на загрузку парсера по умолчанию, если он не используется. Парсер по умолчанию — парсер HotJava, использующий DTD HTML 3.2.
Возвращает:
парсер

getAccessibleContext

public AccessibleContext getAccessibleContext()
Возвращает AccessibleContext, связанный с этим набором редакторов.
Определено в:
getAccessibleContext в интерфейсе Accessible
Возвращает:
AccessibleContext, связанный с этим набором редакторов
С:
1.4

© 1993, 2023, 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/21/docs/api/java.desktop/javax/swing/text/html/HTMLEditorKit.html

Spec-Zone.ru

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