Java编辑框显示HTML_Swing JEditorPane中显示HTML网页,并能响应链接 | 学步园

此组件使用 EditorKit 的实现来完成其操作。对于给予它的各种内容,它能有效地将其形态变换为适当的文本编辑器种类。该编辑器在任意给定时间的内容类型都由当前已安装的 EditorKit 确定。如果将内容设置为新的 URL,则使用其类型来确定加载该内容所应使用的 EditorKit。

有多种方式可将内容加载到此组件中。

1. 可使用 setText 方法来初始化字符串组件。在这种情况下,将使用当前的 EditorKit,且此类型为期望的内容类型。

2. 可使用 read 方法来初始化 Reader 组件。注意,如果内容类型为 HTML,那么只有使用了 标记,或者设置了 HTMLDocument 上的 Base 属性时才能解析相关的引用(例如对于类似图像等内容)。在这种情况下,将使用当前的 EditorKit,且此类型为期望的内容类型。

3. 可使用 setPage 方法来初始化 URL 组件。在这种情况下,将根据该 URL 来确定内容类型,并且设置为该内容类型所注册的 EditorKit。

构造函数

JEditorPane()

创建一个新的 JEditorPane。

JEditorPane(String url)

根据包含 URL 规范的字符串创建一个 JEditorPane。

JEditorPane(String type, String text)

创建一个已初始化为给定文件的 JEditorPane。

JEditorPane(URL initialPage)

根据用作输入的指定 URL 创建一个 JEditorPane。

常用方法

addHyperlinkListener(HyperlinkListener listener)

为了通知所有的更改(例如选中和进入某个链接)而添加一个超链接侦听器。

getContentType()

获得设置此编辑器当前要处理的内容类型。

getEditorKit()

获取用于处理内容的、当前已安装的工具包。

getPage()

获得当前正在显示的 URL。

getPreferredSize()

返回该 JEditorPane 的首选大小。

getText()

根据此编辑器的内容类型返回此 TextComponent 中所包含的文本。

getStream(URL page)

获取给定 URL 的流,该 URL 是将要由 setPage 方法加载的。

scrollToReference(String reference)

将视图滚动到给定的参考位置(也就是正在显示的 URL 的 UL.getRef 方法所返回的值)。

setContentType(String type)

设置此编辑器所处理的内容类型。

setEditorKit(EditorKit kit)

设置当前为处理内容而安装的工具包。

setPage(String url)

设置当前要显示的 URL。

setPage(URL page)

设置当前要显示的 URL。

setText(String t)

将此 TextComponent 的文本设置为指定内容,预期以此编辑器的内容类型格式提供该内容

如果做过Java Swing开发的人应该知道,可以应用HTML标签来给控件增色,如

//必须用和包起来

JLabel label = newJLable("RED");

如果是完整一个HTML格式文件在Java Swing中应该如何显示出来呢?那就要用到强劲的编辑器控件JEditPane了。JEditorPane是Swing中一款非常强大的文本编辑控件,在JEditorPane中,我们完全可以将HTML文件或RTF格式的文件直接显示出来,但是它还不能完整地支持HTML的所有标准。支持 HTML3.2标准的语法,对CSS和JavaScript就支持的不好,请掂量着使用CSS和JavaScript某些特性。

如果仅仅在JEditPane中显示网页,代码非常简单,只需以下四行代码:

JEditorPane editorPane =newJEditorPane();

String path = "http://unmi.blogcn.com";

editorPane.setEditable(false);//请把editorPane设置为只读,不然显示就不整齐

editorPane.setPage(path);

这时候,网页虽然是显示出来了,可是你会发现点击网页上的超链接没反应,要使JEditorPane能够响应点击链接的事件,我们要为JEditorPane添加超链接的监听器:

editorPane.addHyperlinkListener(this);//让我们的主体类实现了HyperlinkListener接口

HyperlinkListener接口的实现方法参照后面的完整代码

packagecom.unmi;

importjava.awt.BorderLayout;

importjava.awt.Container;

importjava.io.IOException;

importjavax.swing.JEditorPane;

importjavax.swing.JFrame;

importjavax.swing.JScrollPane;

importjavax.swing.event.HyperlinkEvent;

importjavax.swing.event.HyperlinkListener;

importjavax.swing.text.html.HTMLDocument;

importjavax.swing.text.html.HTMLFrameHyperlinkEvent;

publicclassHTMLViewextendsJFrameimplementsHyperlinkListener

{

publicHTMLView()throwsException

{

setSize(640,480);      setTitle("隔叶黄莺:The Blog of Unmi");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JEditorPane editorPane = newJEditorPane();

//放到滚动窗格中才能滚动查看所有内容

JScrollPane scrollPane =

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值