Класс 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 выполняется классом
HTMLDocument. Его документация описывает детали моделирования HTML. Поддержка редактирования в значительной степени опирается на пакет text. - Расширяемость/Масштабируемость
- Для максимальной полезности данного набора инструментов прилагались значительные усилия для обеспечения его расширяемости. Вот некоторые из его функций.
- Парсер заменяем. По умолчанию используется парсер Hot Java, основанный на DTD. Можно использовать другой DTD или совершенно другой парсер. Чтобы изменить парсер, переопределите метод getParser. По умолчанию парсер динамически загружается при первом запросе, поэтому файлы класса никогда не будут загружены, если используется альтернативный парсер. Парсер по умолчанию находится в отдельном пакете под названием parser ниже этого пакета.
- Парсер управляет ParserCallback, который предоставляется классом HTMLDocument. Чтобы изменить обратный вызов, создайте подкласс HTMLDocument и переопределите метод createDefaultDocument для возврата документа, который генерирует другой reader. Чтение управляет тем, как структурирован документ. Хотя Document по умолчанию поддерживает HTML, ничего не мешает поддержке тегов, отличных от HTML, что приводит к альтернативным структурам элементов.
- Представление моделей по умолчанию предоставляется как иерархия реализаций View, поэтому можно легко настроить отображение конкретного элемента или добавить возможности для новых типов элементов путем предоставления новых реализаций View. Стандартный набор представлений предоставляется классом
HTMLFactory. Это можно легко изменить, создав подкласс или заменив HTMLFactory и переопределив метод getViewFactory для возврата альтернативного фабричного объекта. - Реализации 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) | Копирует пары ключ/значение в наборе атрибутов |
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 автоматически или срабатывает только |
void | read(Reader in,
Document doc,
int pos) | Вставляет содержимое из заданного потока. |
void | setAutoFormSubmission(boolean isAuto) | Указывает, обрабатывается ли отправка формы html автоматически или срабатывает только |
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