默认情况下,JEditorPane识别三种类型的文档:
text/plain(使用DefaultEditorKit)
text/html(使用javax.swing.text.html.HTMLEditorKit)
text/rtf(使用javax.swing.text.rtf.RTFEditorKit)
可以使用read(),setText(),setPage()方法显示。其中read()方法用Reader读取文档,如果其内容类型为html,但是如果不在HTMLEditorKit中设置其相对引用(relative reference)的根路径(base),则JEditorPane将无法解析此文档。
下面的代码可以处理frame和超链接的情况:
class Hyperactive implements HyperlinkListener {
public void hyperlinkUpdate(HyperlinkEvent e) {
if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
JEditorPane pane = (JEditorPane) e.getSource();
if (e instanceof HTMLFrameHyperlinkEvent) {
HTMLFrameHyperlinkEvent evt = (HTMLFrameHyperlinkEvent)e;
HTMLDocument doc = (HTMLDocument)pane.getDocument();
doc.processHTMLFrameHyperlinkEvent(evt);
} else {
try {
pane.setPage(e.getURL());
} catch (Throwable t) {
t.printStackTrace();
}
}
}
}
}
flash好像也支持,javascript不支持。jsp?自己试试!
text/plain(使用DefaultEditorKit)
text/html(使用javax.swing.text.html.HTMLEditorKit)
text/rtf(使用javax.swing.text.rtf.RTFEditorKit)
可以使用read(),setText(),setPage()方法显示。其中read()方法用Reader读取文档,如果其内容类型为html,但是如果不在HTMLEditorKit中设置其相对引用(relative reference)的根路径(base),则JEditorPane将无法解析此文档。
下面的代码可以处理frame和超链接的情况:
class Hyperactive implements HyperlinkListener {
public void hyperlinkUpdate(HyperlinkEvent e) {
if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
JEditorPane pane = (JEditorPane) e.getSource();
if (e instanceof HTMLFrameHyperlinkEvent) {
HTMLFrameHyperlinkEvent evt = (HTMLFrameHyperlinkEvent)e;
HTMLDocument doc = (HTMLDocument)pane.getDocument();
doc.processHTMLFrameHyperlinkEvent(evt);
} else {
try {
pane.setPage(e.getURL());
} catch (Throwable t) {
t.printStackTrace();
}
}
}
}
}
flash好像也支持,javascript不支持。jsp?自己试试!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货