Класс HTMLEditorKit
- Все реализованные интерфейсы:
-
Serializable,Cloneable,Accessible
public class HTMLEditorKit extends StyledEditorKit implements Accessible
Преследуются несколько целей HTML EditorKit, которые влияют на способ моделирования HTML. Эти цели существенно повлияли на его дизайн.
- Поддержка редактирования
- Возможно, очевидно, что плагин для JEditorPane должен обеспечивать поддержку редактирования, но этот факт имеет несколько соображений по проектированию. Существует значительное количество HTML-документов, которые не соответствуют спецификации 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 |
Абстрактное действие, предоставляющее удобные методы для вставки 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 |
Копирует пары ключ/значение в AttributeSet element в set. |
void |
deinstall |
Вызывается при удалении редактора из 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 |
Вставляет HTML в существующий документ. |
void |
install |
Вызывается при установке кита в JEditorPane. |
boolean |
isAutoFormSubmission() |
Указывает, обрабатывается ли отправка формы HTML автоматически или срабатывает только FormSubmitEvent. |
void |
read |
Вставляет содержимое из заданного потока. |
void |
setAutoFormSubmission |
Устанавливает, обрабатывается ли отправка формы HTML автоматически или срабатывает только FormSubmitEvent. |
void |
setDefaultCursor |
Устанавливает курсор по умолчанию. |
void |
setLinkCursor |
Устанавливает курсор, используемый над ссылками. |
void |
setStyleSheet |
Устанавливает набор стилей, используемых для отображения различных элементов HTML. |
void |
write |
Записывает содержимое документа в заданный поток в формате, соответствующем этому обработчику содержимого. |
Методы, объявленные в классе javax.swing.text.StyledEditorKit
getCharacterAttributeRun
Методы, объявленные в классе javax.swing.text.DefaultEditorKit
createCaret, read, write
Подробное описание полей
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()
Подробное описание методов
getContentType
public String getContentType()
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
- Параметры:
-
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)
- Переопределяет:
-
installв классеStyledEditorKit - Параметры:
-
c- JEditorPane
deinstall
public void deinstall(JEditorPane c)
- Переопределяет:
-
deinstallв классеStyledEditorKit - Параметры:
-
c- JEditorPane
setStyleSheet
public void setStyleSheet(StyleSheet s)
- Параметры:
-
s- StyleSheet
getStyleSheet
public StyleSheet getStyleSheet()
- Возвращает:
- 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()
FormSubmitEvent. - Возвращает:
- true, если отправка HTML-формы обрабатывается автоматически, false в противном случае.
- С:
- 1.5
- См. также:
setAutoFormSubmission
public void setAutoFormSubmission(boolean isAuto)
FormSubmitEvent. По умолчанию установлено значение true.- Параметры:
-
isAuto- еслиtrue, отправка HTML-формы обрабатывается автоматически. - С:
- 1.5
- См. также:
clone
public Object clone()
- Переопределяет:
-
cloneв классеStyledEditorKit - Возвращает:
- копию
- См. также:
getParser
protected HTMLEditorKit.Parser getParser()
- Возвращает:
- парсер
getAccessibleContext
public AccessibleContext getAccessibleContext()
- Определено в:
-
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