- 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建模的详细信息。 编辑支持大量使用文本包。 - 可扩展的/可扩展
-
为了最大限度地发挥该套件的实用性,已经付出了大量努力使其可扩展。
这些是一些功能。
- 解析器是可替换的。 默认解析器是基于DTD的Hot Java解析器。 可以使用不同的DTD,或者可以使用完全不同的解析器。 要更改解析器,请重新实现getParser方法。 首次请求时会动态加载默认解析器,因此如果使用备用解析器,则永远不会加载类文件。 默认解析器位于此包下面的一个名为parser的独立包中。
- 解析器驱动ParserCallback,它由HTMLDocument提供。 要更改回调,请继承HTMLDocument并重新实现createDefaultDocument方法以返回生成不同读者的文档。 阅读器控制文档的结构。 虽然默认情况下Document提供HTML支持,但是没有任何东西可以阻止非HTML标记的支持,从而导致替代元素结构。
- 模型的默认视图作为View实现的层次结构提供,因此可以通过提供新的View实现轻松自定义特定元素的显示方式或添加新类型元素的功能。 默认的视图集由
HTMLFactory
类提供。 通过继承或替换HTMLFactory并重新实现getViewFactory方法以返回替代工厂,可以轻松更改此设置。 - View实现主要使用CSS属性,这些属性保存在视图中。 这使得可以在同一模型上映射多个视图,这些视图看起来大不相同。 这对于打印尤其有用。 对于大多数HTML属性,HTML属性将转换为CSS属性以供显示。 这有助于使View实现更具通用性
- 异步加载
-
较大的文档涉及大量解析并需要一些时间来加载。
默认情况下,如果使用
JEditorPane.setPage
加载,此工具包将生成将异步加载的JEditorPane.setPage
。 这由文档上的属性控制。 可以覆盖方法createDefaultDocument
以更改此方法。 批量工作由HTMLDocument.HTMLReader
课程完成。 实际工作由文本包中的DefaultStyledDocument
和AbstractDocument
类完成。 - 来自当前LAF的定制
-
HTML提供了一组众所周知的功能,但没有明确指定显示特性。
Swing有一个主题机制,用于其外观实现。
希望外观将显示特性馈送到HTML视图中。
例如,视力不佳的用户需要高对比度并且比典型字体更大。
对此的支持由
StyleSheet
类提供。 在EditorKit上设置StyleSheet属性会严重影响HTML的显示。 - 没有损失
- EditorKit具有读取和保存文档的功能。 如果两个操作之间没有数据丢失,通常是用户最满意的。 HTMLEditorKit的策略是存储未识别或不一定可见的内容,以便随后可以将其写出。 因此,HTML文档的模型应包含在阅读文档时发现的所有信息。 这在某些方面受到支持编辑的需要的约束(即,有时必须对不正确的文档进行标准化)。 指导原则是不应丢失信息,但可以合成一些信息以产生更正确的模型,或者可以重新排列信息。
- 另请参见:
- Serialized Form
-
-
嵌套类汇总
嵌套类 变量和类型 类 描述 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
用于设置标记视图的默认级联样式表文件。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
的AttributeSet中的键/值复制到set
。void
deinstall(JEditorPane c)
从JEditorPane中取出套件时调用。AccessibleContext
getAccessibleContext()
返回与此编辑器工具包关联的AccessibleContextAction[]
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
-
-
-
-
方法详细信息
-
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元素内部,如果未插入到正文中,则会抛出异常。 当插入非空文档时,身体外部的所有标签(头部,标题)将被丢弃。- 重写:
-
read
在类DefaultEditorKit
- 参数
-
in
- 要读取的流 -
doc
- 插入的目的地 -
pos
- 放置内容的文档中的位置 - 异常
-
IOException
- 关于任何I / O错误 -
BadLocationException
- 如果pos表示文档中的无效位置 -
RuntimeException
- 如果pos无效,(最终将是BadLocationException)
-
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
- 关于I / O错误 -
RuntimeException
- 如果pos无效,(最终将是BadLocationException)
-
write
public void write(Writer out, Document doc, int pos, int len) throws IOException, BadLocationException
以适合此类内容处理程序的格式将文档中的内容写入给定流。- 重写:
-
write
类DefaultEditorKit
- 参数
-
out
- 要写入的流 -
doc
- 写入源 -
pos
- 文档中用于获取内容的位置 -
len
- 写出的金额 - 异常
-
IOException
- 关于任何I / O错误 -
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
- 样式表
-
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
。- 结果
- 如果自动处理html表单提交,则为true,否则为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流。 这可以重新实现以提供不同的解析器。 默认实现是动态加载的,以避免在未使用时加载默认解析器的开销。 默认解析器是使用HTML 3.2 DTD的HotJava解析器。- 结果
- 解析器
-
getAccessibleContext
public AccessibleContext getAccessibleContext()
返回与此编辑器工具包关联的AccessibleContext- Specified by:
-
getAccessibleContext
在界面Accessible
- 结果
- 与此编辑器工具包关联的AccessibleContext
- 从以下版本开始:
- 1.4
-
-