java可以显⽰HTML的组件JEditorPane说明(转)
public class JEditorPane extends
可编辑各种内容的⽂本组件。有关基础知识信息和使⽤编辑器窗格的⽰例,请参阅The Java Tutorial中的⼀节。
此组件使⽤EditorKit的实现来完成其操作。对于给予它的各种内容,它能有效地将其形态变换为适当的⽂本编辑器种类。该编辑器在任意给定时间的内容类型都由当前已安装的EditorKit确定。如果将内容设置为新的 URL,则使⽤其类型来确定加载该内容所应使⽤的EditorKit。
默认情况下,已知下列内容类型:
text/plain
纯⽂本,即⽆法识别给定的类型时所使⽤的默认值。在此情况下使⽤的⼯具包是DefaultEditorKit的扩展,可⽣成有换⾏的纯⽂本视图。text/html
HTML ⽂本。在此情况下使⽤的⼯具包是类html.HTMLEditorKit,⽀持 HTML 3.2。
text/rtf
RTF ⽂本。在此情况下使⽤的⼯具包是类tf.RTFEditorKit,它提供了对多样化⽂本格式 (Rich Text Format) 的有限⽀持。有多种⽅式可将内容加载到此组件中。
1. 可使⽤⽅法来初始化字符串组件。在这种情况下,将使⽤当前的EditorKit,且此类型为期望的内容类型。
2. 可使⽤⽅法来初始化Reader组件。注意,如果内容类型为 HTML,那么只有使⽤了 <base> 标记,或者设置了HTMLDocument上的
Base属性时才能解析相关的引⽤(例如对于类似图像等内容)。在这种情况下,将使⽤当前的EditorKit,且此类型为期望的内容类型。
3. 可使⽤⽅法来初始化 URL 组件。在这种情况下,将根据该 URL 来确定内容类型,并且设置为该内容类型所注册的EditorKit。
某些内容类型可能通过⽣成超链接事件来提供对超链接的⽀持。如果JEditorPane是不可编辑的(已调⽤了JEditorPane.setEditable(false);),则HTML EditorKit将⽣成超链接事件。如果⽂档中嵌⼊了 HTML frame,则典型的响应是更改当前⽂档的某⼀部分。以下代码⽚段是⼀种可能的超链接侦听器实现,它特殊对待 HTML frame 事件,并且简单地显⽰其他所有已激活的超链接。
class Hyperactive implements HyperlinkListener {
public void hyperlinkUpdate(HyperlinkEvent e) {
html document是什么
if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
JEditorPane pane = (JEditorPane) e.getSource();
if (e instanceof HTMLFrameHyperlinkEvent) {
HTMLFrameHyperlinkEvent  evt = (HTMLFrameHyperlinkEvent)e;
HTMLDocument doc = (Document();
doc.processHTMLFrameHyperlinkEvent(evt);
} else {
try {
pane.URL());
} catch (Throwable t) {
t.printStackTrace();
}
}
}
}
}
有关⾃定义如何呈现 text/html 的信息,请参阅和
某些⽂档中与⽂化相关的信息是通过⼀种称为字符编码的机制来处理的。字符编码是字符集的成员(字母、象形⽂字、数字、符号或控制函数)和具体数字代码值的明确映射关系。它表⽰了⽂件的存储⽅式。字符编码有 ISO-8859-1、ISO-8859-5、Shift-jis、Euc-jp 和 UTF-8。将⽂件传递给⽤户代理 (JEditorPane) 时,该⽂件被转换为⽂档字符集 (ISO-10646 aka Unicode)。
有多种⽅式可获得使⽤JEditorPane时所⽤的字符集映射关系。
1. ⼀种⽅式是将字符集指定为 MIME 类型的参数。通过调⽤⽅法来建⽴此⽅式。如果通过⽅法加载内容,则其内容类型已根据 URL 的
规范进⾏了设置。如果直接加载⽂件,则期望在加载前就已设置内容类型。
2. 指定字符集的另⼀种⽅式是在该⽂档内指定。这需要在确定所需的字符集之前读取该⽂档。要处理此情况,需要ad 操作抛
出将要被捕获的ChangedCharSetException。然后使⽤新的 Reader 重新开始该 read 操作,该 Reader 使⽤ChangedCharSetException(这是⼀个IOException)中所指定的字符集。
换⾏
有关如何处理换⾏的讨论,请参阅。
警告: Swing 不是线程安全的。有关更多信息,请参阅。
警告:此类的序列化对象与以后的 Swing 版本不兼容。当前序列化⽀持适⽤于短期存储,或适⽤于在
运⾏相同 Swing 版本的应⽤程序之间进⾏ RMI(Remote Method Invocation,远程⽅法调⽤)。从 1.4 版本开始,已在java.beans包中添加了⽀持所有 JavaBeans TM长期存储的
功能。请参见。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。