Класс 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 выполняется классом 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

Абстрактный Action, предоставляющий несколько удобных методов, которые могут быть полезны для вставки 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 String BOLD_ACTION

Идентификатор действия «жирный»

static String COLOR_ACTION

Идентификатор действия «выбор цвета». Цвет передается в качестве аргумента

static String DEFAULT_CSS

Файл по умолчанию таблицы стилей Cascading Style Sheet, который настраивает представления тегов.

static String FONT_CHANGE_BIGGER

Идентификатор действия увеличения размера шрифта до следующего значения

static String FONT_CHANGE_SMALLER

Идентификатор действия уменьшения размера шрифта до следующего значения

static String IMG_ALIGN_BOTTOM

Выравнивание изображений по нижнему краю.

static String IMG_ALIGN_MIDDLE

Выравнивание изображений по центру.

static String IMG_ALIGN_TOP

Выравнивание изображений по верхнему краю.

static String IMG_BORDER

Выравнивание изображений по границе.

static String ITALIC_ACTION

Идентификатор действия «курсив»

static String LOGICAL_STYLE_ACTION

Идентификатор действия выбора логического стиля. Логический стиль передается в качестве аргумента.

static String PARA_INDENT_LEFT

Идентификатор действия отступа слева абзаца

static String PARA_INDENT_RIGHT

Идентификатор действия отступа справа абзаца

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

backwardAction, beepAction, beginAction, beginLineAction, beginParagraphAction, beginWordAction, copyAction, cutAction, defaultKeyTypedAction, deleteNextCharAction, deleteNextWordAction, deletePrevCharAction, deletePrevWordAction, downAction, endAction, endLineAction, 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)

Копирует пары ключ/значение в наборе атрибутов 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

Файл стандартного таблицы стилей 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.

Overrides:
getContentType в классе DefaultEditorKit
Возвращает:
тип

getViewFactory

public ViewFactory getViewFactory()

Получить фабрику, подходящую для создания представлений любых моделей, которые создаются этим набором инструментов.

Overrides:
getViewFactory в классе StyledEditorKit
Возвращает:
фабрику

createDefaultDocument

public Document createDefaultDocument()

Создать неинициализированную модель хранилища текста, подходящую для этого типа редактора.

Overrides:
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) будут удалены.

Overrides:
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
popDepth - количество ElementSpec.EndTagTypes для создания перед вставкой
html - строка HTML
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

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

Overrides:
write в классе DefaultEditorKit
Параметры:
out - поток для записи
doc - источник для записи
pos - местоположение в документе для извлечения содержимого
len - количество для записи
Исключения:
IOException - при любой ошибке ввода-вывода
BadLocationException - если pos представляет недопустимое расположение в документе

install

public void install(JEditorPane c)

Вызывается при установке набора инструментов в JEditorPane.

Overrides:
install в классе StyledEditorKit
Параметры:
c - JEditorPane

deinstall

public void deinstall(JEditorPane c)

Вызывается при удалении набора инструментов из JEditorPane. Это используется для отмены регистрации любых слушателей, которые были добавлены.

Overrides:
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()

Получает список команд для редактора. Это список команд, поддерживаемых суперклассом, дополненный набором команд, определенных локально для операций со стилем.

Overrides:
getActions в классе StyledEditorKit
Возвращает:
список команд

createInputAttributes

protected void createInputAttributes(Element element,
                                     MutableAttributeSet set)

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

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

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

getInputAttributes

public MutableAttributeSet getInputAttributes()

Получает входные атрибуты, используемые для действий по стилизованному редактированию.

Overrides:
getInputAttributes в классе StyledEditorKit
Возвращает:
набор атрибутов

setDefaultCursor

public void setDefaultCursor(Cursor cursor)

Устанавливает курсор по умолчанию.

Параметры:
cursor - курсор
Since:
1.3

getDefaultCursor

public Cursor getDefaultCursor()

Возвращает курсор по умолчанию.

Возвращает:
курсор
Since:
1.3

setLinkCursor

public void setLinkCursor(Cursor cursor)

Устанавливает курсор, используемый над ссылками.

Параметры:
cursor - курсор
Since:
1.3

getLinkCursor

public Cursor getLinkCursor()

Возвращает курсор, используемый над гиперссылками.

Возвращает:
курсор
Since:
1.3

isAutoFormSubmission

public boolean isAutoFormSubmission()

Указывает, обрабатывается ли отправка HTML-формы автоматически или срабатывает только FormSubmitEvent.

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

setAutoFormSubmission

public void setAutoFormSubmission(boolean isAuto)

Устанавливает, обрабатывается ли отправка HTML-формы автоматически или срабатывает только FormSubmitEvent. По умолчанию значение равно true.

Параметры:
isAuto - если true, отправка HTML-формы обрабатывается автоматически.
Since:
1.5
См. также:
isAutoFormSubmission(), FormSubmitEvent

clone

public Object clone()

Создает копию набора инструментов редактора.

Overrides:
clone в классе StyledEditorKit
Возвращает:
копию
См. также:
Cloneable

getParser

protected HTMLEditorKit.Parser getParser()

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

Возвращает:
парсер

getAccessibleContext

public AccessibleContext getAccessibleContext()

Возвращает AccessibleContext, связанный с этим набором инструментов редактора.

Specified by:
getAccessibleContext в интерфейсе Accessible
Возвращает:
AccessibleContext, связанный с этим набором инструментов редактора
Since:
1.4

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

Spec-Zone .ru
спецификации, руководства, описания, API