java.lang.Object javax.swing.text.EditorKit javax.swing.text.DefaultEditorKit javax.swing.text.StyledEditorKit javax.swing.text.html.HTMLEditorKit
public class HTMLEditorKit
Swing JEditorPane 文本组件通过称为 EditorKit 的插件机制来支持不同种类的内容。因为 HTML 是很流行的内容格式,因此默认提供了某种支持。此类提供了 HTML version 3.2(带有某些扩展)的默认支持,并正在向 version 4.0 迁移。不支持 <applet> 标记,但为 <object> 标记提供了某种支持。
提供 HTML EditorKit 有几个目的,这些目的影响了 HTML 的建模方式。并从基本方法上影响了其设计。
HTMLDocument
类提供了 HTML 的建模。其文档描述了建模 HTML 的细节。编辑支持主要不利用 text 包。
HTMLFactory
类提供。可以轻松地更改此方法,方法是创建 HTMLFactory 的子类或替换 HTMLFactory 类,并重新实现 getViewFactory 方法以返回替代的工厂。
JEditorPane.setPage
来加载)。这由文档的一个属性来控制。这可以通过重写
createDefaultDocument 方法来更改。批处理工作由
HTMLDocument.HTMLReader
类完成。实际的工作由 text 包中的
DefaultStyledDocument
和
AbstractDocument
类完成。
StyleSheet
类提供了这种支持。通过设置 EditorKit 上的 StyleSheet 属性,可以对 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 解析结果驱动这些回调方法。 |
字段摘要 | |
---|---|
static String |
BOLD_ACTION 粗体动作标识符 |
static String |
COLOR_ACTION Color 选择动作标识符(颜色作为参数传递) |
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 段落右缩进动作标识符 |
构造方法摘要 | |
---|---|
HTMLEditorKit() 构造 HTMLEditorKit,创建 StyleContext,并加载样式表。 |
方法摘要 | |
---|---|
Object |
clone() 创建编辑器工具包的一个副本。 |
Document |
createDefaultDocument() 创建一个适合此编辑器类型的未初始化文本存储模型。 |
protected void |
createInputAttributes(Element element, MutableAttributeSet set) 将 element 的 AttributeSet 键/值复制到 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 |
字段详细信息 |
---|
public static final String DEFAULT_CSS
public static final String BOLD_ACTION
public static final String ITALIC_ACTION
public static final String PARA_INDENT_LEFT
public static final String PARA_INDENT_RIGHT
public static final String FONT_CHANGE_BIGGER
public static final String FONT_CHANGE_SMALLER
public static final String COLOR_ACTION
public static final String LOGICAL_STYLE_ACTION
public static final String IMG_ALIGN_TOP
public static final String IMG_ALIGN_MIDDLE
public static final String IMG_ALIGN_BOTTOM
public static final String IMG_BORDER
构造方法详细信息 |
---|
public HTMLEditorKit()
方法详细信息 |
---|
public String getContentType()
text/html
类型。
DefaultEditorKit
中的
getContentType
public ViewFactory getViewFactory()
StyledEditorKit
中的
getViewFactory
public Document createDefaultDocument()
StyledEditorKit
中的
createDefaultDocument
public void read(Reader in, Document doc, int pos) throws IOException, BadLocationException
doc
是 HTMLDocument 的一个实例,则这将读取 HTML 3.2 文本。将 HTML 插入非空文档时必须插入到正文 Element 的内部,如果未插入正文中,则抛出一个异常。当插入非空文档时,正文外部的所有标记(头、标题)将被删除。
DefaultEditorKit
中的
read
in
- 要从其读取的流
doc
- 插入的目标
pos
- 在文档中放置内容的位置
IOException
- 如果发生任何 I/O 错误
BadLocationException
- 如果 pos 代表文档中的无效位置
RuntimeException
- (最终将为 BadLocationException)如果 pos 无效
public void insertHTML(HTMLDocument doc, int offset, String html, int popDepth, int pushDepth, HTML.Tag insertTag) throws BadLocationException, IOException
doc
- 内容将要插入的文档
offset
- HTML 插入位置的偏移量
popDepth
- 插入前要生成的 ElementSpec.EndTagTypes 的数量
pushDepth
- 插入前但生成结束标记之后,应该生成的 ElementSpec.StartTagTypes 的数量(它具有 ElementSpec.JoinNextDirection 方向)
insertTag
- 开始插入文档的首个标记
RuntimeException
- (最终将为 BadLocationException)如果 pos 无效
BadLocationException
IOException
public void write(Writer out, Document doc, int pos, int len) throws IOException, BadLocationException
DefaultEditorKit
中的
write
out
- 要写入的流
doc
- 写入的源
pos
- 在文档中获取内容的位置
len
- 写出量
IOException
- 如果发生任何 I/O 错误
BadLocationException
- 如果 pos 代表文档中的无效位置
public void install(JEditorPane c)
StyledEditorKit
中的
install
c
- JEditorPane
public void deinstall(JEditorPane c)
StyledEditorKit
中的
deinstall
c
- JEditorPane
public void setStyleSheet(StyleSheet s)
public StyleSheet getStyleSheet()
public Action[] getActions()
StyledEditorKit
中的
getActions
protected void createInputAttributes(Element element, MutableAttributeSet set)
element
的 AttributeSet 键/值复制到
set
中。此操作不复制组件、图标或者元素名称属性。子类可能希望修改此处要复制什么,不复制什么。确保首先移除
set
中的所有属性。
这在插入符移到一个不同位置时调用。
StyledEditorKit
中的
createInputAttributes
public MutableAttributeSet getInputAttributes()
StyledEditorKit
中的
getInputAttributes
public void setDefaultCursor(