在Java Swing中显示HTML网页,并能响应链接
如果做过Java Swing开发的人应该知道,可以应用HTML标签来给控件增色,如
如
果是完整一个HTML格式文件在Java
Swing中应该如何显示出来呢?那就要用到强劲的编辑器控件JEditPane了。JEditorPane是Swing中一款非常强大的文本编辑控件,
在JEditorPane中,我们完全可以将HTML文件或RTF格式的文件直接显示出来,但是它还不能完整地支持HTML的所有标准。支持
HTML3.2标准的语法,对CSS和JavaScript就支持的不好,请掂量着使用CSS和JavaScript某些特性。
如果仅仅在JEditPane中显示网页,代码非常简单,只需以下四行代码:
这时候,网页虽然是显示出来了,可是你会发现点击网页上的超链接没反应,要使JEditorPane能够响应点击链接的事件,我们要为JEditorPane添加超链接的监听器:
HyperlinkListener接口的实现方法参照后面的完整代码
JEditorPane有两个重载的setPage方法,一个是setPage(String path),另一个是setPage(URL url)。你可以有多种方式获取要显示的HTML的path或url。
例
如,对于显示本地系统上的HTML文件,可以用如下方式(为什么一定转成AbsolutePath,而不能直接
editorPane.setPage("c:\\test.html")我还没有搞清,反正直接editorPane.setPage("c:
\\test.html")页面显示不出来)
也可以通过类加载器得当相对于Classpath下的资源(HTML文件)的URL,方法如下:
另外:对于editorPane还可以用它的setText(content)来设置要显示的内容,content是以<body></body>包裹起来的,如
借
于以上方法,你可以读取到网页的内容,然后取<body>部分(含Body标签),显示到editorPane上,不过这样做也真的是多此一
举啦,而且还是出力不讨好的,想想在body之外还定义了一些样式表或更多内容就那样被抛弃了,具体这种用法的代码就不写出来了。
显示的网页如下图:
由
上图可以看出来,HTML中的TextBox、ComboBox、RadioButton、Button等控件都被Swing
JEditorPane转换成风格的相应控件来显示了,另外还注意到图中的"数据读取中"本该是要处理替换的,可是怎么也出不来,也就是
JEditorPane对JavaScript得不到很好的支持,同时也能看到有些显示样式还不错,也有许多地方的显示风格与在IE中相差较远,由
此,JEditorPane也是不能很好的支持样式表。
参考:1. 跟我学Java Swing之游戏设计(4)
2. http://java.vkfz.com/Java-t191539.htm
3. Eclipse 3.0 简介和插件开发示例
分享到:
相关推荐
在Java Swing中,所有的组件都被称为轻量级组件,因为它们完全由Java代码实现,不依赖于操作系统底层的图形库,这使得Swing应用具有更好的跨平台兼容性。 `java_swingProgram.chm` 文件可能是一个帮助文档,通常...
在某些情况下,开发者可能需要在Java应用中集成一个浏览器组件,以便展示网页内容或者实现一些Web相关的功能。这就是"Java Swing 内嵌浏览器"的概念。在Java中实现内嵌浏览器,通常会借助第三方库,如DJNativeSwing-...
例如,在`JTable`(一种用于显示表格数据的组件)中添加超链接功能可以使得用户能够直接点击单元格中的链接进行网页浏览或其他操作。本文将详细介绍如何在Java Swing环境中实现超链接标签以及超链接按钮,并提供具体...
在本教程中,我们将深入探讨如何使用Swing组件结合网络编程技术,实现通过IP地址获取网站信息的功能,这通常涉及到网页抓取,也就是网络爬虫的基本应用。 首先,我们需要理解Java中的网络编程基础。Java提供了`java...
在Java程序设计中,创建一个网页浏览器涉及到许多关键知识点,包括网络编程、GUI设计、解析HTML等。以下是对这些主题的详细阐述: 1. **Java网络编程**:Java提供了丰富的API来处理网络通信,如`java.net`包下的...
1. **Java Applet**:Applet是Java早期用于在Web浏览器中运行的小程序,它通过Java插件与HTML页面集成。Applet的生命周期包括初始化、加载、显示、暂停、停止和销毁六个阶段。虽然现代Web开发中Applet已较少使用,但...
一种常见的方式是使用开源项目如JxBrowser,它提供了轻量级的Chromium引擎,可以直接在Swing应用中加载和显示网页。 4. **Win32位系统与64位兼容性**: 提到的jar包声称适用于win32位系统,并且"亲测64位也可以用",...
2. 网络通信:浏览器的核心功能之一是与Web服务器进行交互,获取并显示网页内容。这涉及到HTTP(超文本传输协议)和HTTPS(安全版HTTP)。Java的`java.net`包提供了Socket和HttpURLConnection等类来实现网络通信。...
2. **具体效果说明**:作者在其百度空间博客上提供了一个链接http://hi.baidu.com/wzwahl36/blog/item/2047c829c7e915eb99250ae8.html,该链接中包含了项目的具体效果说明,可以帮助理解项目的实现细节和特点。...
【网页浏览器Java课程设计】是针对Java编程语言的一次实践性教学活动,旨在让学生通过...通过这样的项目,学生不仅可以提升Java编程技能,还能深入理解Web浏览器的工作原理,为未来在Web开发领域的发展打下坚实基础。
在开发网页浏览器的过程中,主要用到的是JAVA的Swing或JavaFX库来构建用户界面,这两者提供了丰富的组件,如JFrame、JButton、JTextField等,用于创建图形化用户界面(GUI)。 其次,课程设计可能涉及网络编程,...
3. **GUI(图形用户界面)**:为了显示网页,需要使用JAVA的Swing或JavaFX库来构建用户界面。这包括创建`JFrame`作为主窗口,添加`JEditorPane`或`JWebView`来显示网页内容,以及` JButton`等控件实现导航功能。 4....
在"HTML修改表、编程技术"中,你将学习如何使用HTML标记来创建文本、图像、链接、表格等元素,并理解如何使用表格进行数据展示。HTML5的引入带来了更丰富的新元素和API,如canvas用于绘制图形,video和audio元素用于...
在这个实训项目中,学生被要求使用Java来开发一个网页浏览器,这涉及到对Java基础、Swing库以及软件开发流程的理解和实践。 首先,开发环境是Eclipse,这是一个流行的Java集成开发环境(IDE),提供了编写、调试和...
4. **链接分配**:用户应该能为每个选定的区域分配链接或动作,这可能通过对话框或输入框来实现,收集用户的输入并存储在数据结构中。 5. **导出ImageMap代码**:最后,程序需要将上述信息转换成适用于Wikimedia的...
在Java编程领域,开发一款网页浏览器是一项挑战性的任务,它涉及到网络通信、用户界面设计、渲染引擎等多个核心组件。下面将详细阐述这个项目所涵盖的关键知识点。 首先,我们需要理解Java的基础,包括类、对象、...
在Java课程设计中,开发一个网页浏览器是一项具有挑战性和实践价值的任务。这不仅能够帮助学习者巩固Java基础知识,还能深入理解网络通信、多线程、GUI编程等核心概念。这个项目的核心是利用Java语言来实现一个基本...
在Java编程中,超链接是常见的一种功能,用于在文本或网页中创建可点击的链接,引导用户到其他资源或执行特定操作。本教程将详细解释如何在Java中实现超链接,以及涉及到的关键技术,包括`HyperlinkEvent`、`...
JSP则是一种动态网页技术,允许在HTML页面中嵌入Java代码,以实现动态内容生成。两者结合,可以构建出功能强大的Web应用。 2. **Spring框架**:Spring是Java开发中最常用的一个开源框架,它提供了一种依赖注入...
在本项目中,我们主要探讨的是使用Java编程语言开发的一款网络爬虫,其目标是爬取特定网站——“校花网”上的所有美女图片。同时,项目还包含了一个基于Swing的简单游戏——贪吃蛇,增加了趣味性。以下是关于Java...