在javaswing中显示html网页,并能响应链接

上传人:kms****20 文档编号:40525167 上传时间:2018-05-26 格式:DOC 页数:4 大小:27.50KB
返回 下载 相关 举报
在javaswing中显示html网页,并能响应链接_第1页
第1页 / 共4页
在javaswing中显示html网页,并能响应链接_第2页
第2页 / 共4页
在javaswing中显示html网页,并能响应链接_第3页
第3页 / 共4页
在javaswing中显示html网页,并能响应链接_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《在javaswing中显示html网页,并能响应链接》由会员分享,可在线阅读,更多相关《在javaswing中显示html网页,并能响应链接(4页珍藏版)》请在金锄头文库上搜索。

1、在在 JavaSwingJavaSwing 中显示中显示 HTMLHTML 网页网页, ,并能响应链接并能响应链接在 Java Swing 中显示 HTML 网页,并能响应链接如果做过 Java Swing 开发的人应该知道,可以应用 HTML 标签来给控件增色,如/必须用 html 和 /html 包起来 JLabel label = new JLable( html font color=red size=3 RED /font /html );如 果是完整一个 HTML 格式文件在 Java Swing 中应该如何显示出来呢?那就要用到强劲的编辑器控件 JEditPane 了。JEdit

2、orPane是 Swing 中一款非常强大的文本编辑控件, 在 JEditorPane 中,我们完全可以将 HTML 文件或 RTF 格式的文件直接显示出来,但是它还不能完整地支持 HTML 的所有标准。支持 HTML3.2 标准的语法,对CSS 和 JavaScript 就支持的不好,请掂量着使用 CSS 和 JavaScript某些特性。如果仅仅在 JEditPane 中显示网页,代码非常简单,只需以下四行代码:JEditorPane editorPane = new JEditorPane(); String path = http:/ ; editorPane.setEditable(

3、false); /请把 editorPane 设置为只读,不然显示就不整齐 editorPane.setPage(path);这时候,网页虽然是显示出来了,可是你会发现点击网页上的超链接没反应,要使 JEditorPane 能够响应点击链接的事件,我们要为JEditorPane 添加超链接的监听器: editorPane.addHyperlinkListener(this); /让我们的主体类实现了 HyperlinkListener 接口HyperlinkListener 接口的实现方法参照后面的完整代码package com.unmi; import java.awt.BorderLayo

4、ut; import java.awt.Container; import java.io.IOException; import javax.swing.JEditorPane; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.event.HyperlinkEvent; import javax.swing.event.HyperlinkListener; import javax.swing.text.html.HTMLDocument; import javax.swing.tex

5、t.html.HTMLFrameHyperlinkEvent; public class HTMLView extends JFrame implements HyperlinkListener public HTMLView() throws Exception setSize(640, 480); setTitle( 隔叶黄莺:The Blog of Unmi ); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JEditorPane editorPane = new JEditorPane(); /放到滚动窗格中才能滚动查看所有内容 JS

6、crollPane scrollPane = new JScrollPane(editorPane); /设置是显示网页 html 文件,可选项 /editorPane.setContentType( text/html ); /设置成只读,如果是可编辑,你会看到显示的样子也是不一样的,true 显示界面 editorPane.setEditable(false); /要能响应网页中的链接,则必须加上超链监听器 editorPane.addHyperlinkListener(this); String path = http:/ ; try editorPane.setPage(path);

7、catch (IOException e) System.out.println( 读取页面 + path + 出错. + e.getMessage(); Container container = getContentPane(); /让 editorPane 总是填满整个窗体 container.add(scrollPane, BorderLayout.CENTER); /超链监听器,处理对超级链接的点击事件,但对按钮的点击还捕获不到 public void hyperlinkUpdate(HyperlinkEvent e) if (e.getEventType() = Hyperlink

8、Event.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.getUR

9、L(); catch (Throwable t) t.printStackTrace(); public static void main(String args) throws Exception JFrame frame = new HTMLView(); frame.setVisible(true); JEditorPane 有两个重载的 setPage 方法,一个是 setPage(String path),另一个是 setPage(URL url)。你可以有多种方式获取要显示的 HTML 的 path 或 url。例 如,对于显示本地系统上的 HTML 文件,可以用如下方式(为什么一

10、定转成 AbsolutePath,而不能直接 editorPane.setPage( c:test.html )我还没有搞清,反正直接 editorPane.setPage( c: test.html )页面显示不出来)File file = new File( c:/test.html ); String path = file.getAbsolutePath(); editorPane.setPage(path);也可以通过类加载器得当相对于 Classpath 下的资源(HTML 文件)的 URL,方法如下:URLClassLoader urlLoader = (URLClassLoad

11、er)this.getClass().getClassLoader(); URL url = urlLoader.findResource( doc/help.htm );/可以用 html 格式文件做你的帮助系统了 EditorPane.setPage(url); 另外:对于 editorPane 还可以用它的 setText(content)来设置要显示的内容,content 是以 body /body 包裹起来的,如 editorPane.setText( body a href=http:/ 隔叶黄莺:The Blog of Unmi /a /body );借 于以上方法,你可以读取到

12、网页的内容,然后取 body 部分(含 Body 标签),显示到 editorPane 上,不过这样做也真的是多此一 举啦,而且还是出力不讨好的,想想在 body 之外还定义了一些样式表或更多内容就那样被抛弃了,具体这种用法的代码就不写出来了。显示的网页如下图:由 上图可以看出来,HTML 中的TextBox、ComboBox、RadioButton、Button 等控件都被 Swing JEditorPane 转换成风格的相应控件来显示了,另外还注意到图中的 数据读取中 本该是要处理替换的,可是怎么也出不来,也就是 JEditorPane 对 JavaScript 得不到很好的支持,同时也能看到有些显示样式还不错,也有许多地方的显示风格与在 IE 中相差较远,由 此,JEditorPane 也是不能很好的支持样式表。文章部分转载 http:/www.7x.gd 转载请注明来源

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号