Java网络编程精解讲义7.ppt
《Java网络编程精解讲义7.ppt》由会员分享,可在线阅读,更多相关《Java网络编程精解讲义7.ppt(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java网络编程精解作者:孙卫琴作者:孙卫琴作者:孙卫琴作者:孙卫琴参考书籍:参考书籍:参考书籍:参考书籍:技术支持网址:技术支持网址:技术支持网址:技术支持网址:www.javathinker.orgwww.javathinker.org第7章 用Swing组件展示HTML文档参考Java网络编程精解的第7章n7.1 在按钮等组件上展示HTML文档n7.2 用JEditorPane组件创建简单的浏览器第7章 用Swing组件展示HTML文档nHTTP响应的正文部分可以是各种类型的数据,比如语音、图片、压缩文件和可执行程序等,而最常见的数据类型是HTML文档。n假定一个HTTP客户程序请求访问
2、一个HTTP服务器上的一个hello.htm文件,以下是HTTP服务器发送的HTTP响应,其中粗体字部分是响应正文,它就是HTML文档,包含了hello.htm文件中的所有文本。HTTP/1.1 200 OKServer:nio/1.1Content-type:text/html;charset=GBKContent-length:102 helloapp hello第7课 用Swing组件展示HTML文档nJava对客户程序的通信过程进行了抽象,提供了通用的协议处理框架。这个框架封装了Socket,主要包括以下类:nURL类:统一资源定位器(Uniform Resource Locator)
3、,表示客户程序要访问的远程资源。nURLConnection类:表示客户程序与远程服务器的连接。客户程序可以从URLConnection中获得数据输入流和输出流。nURLStreamHandler类:协议处理器,主要负责创建与协议相关的URLConnection对象。nContentHandler类:内容处理器,负责解析服务器发送的数据,把它转换为相应的Java对象。n以上类都位于包中,除了URL类为具体类以外,其余的三个类都是抽象类,对于一种具体的协议,需要创建相应的URLConnection、URLStreamHandler和ContentHandler具体子类。第7课 用Swing组件展
4、示HTML文档nHTTP客户程序必须解析以上HTTP响应,其中最主要的工作是解析HTML文档,然后在它的图形界面上显示该文档。由于HTTP客户程序的主要任务就是直观的展示HTTP服务器发回的信息,所以HTTP客户程序通常也叫做浏览器。以下图7-1是IE浏览器展示的hello.htm页面。JDK类库提供了一些现成的Swing组件,它们具有展示HTML文档的功能。7.1 在按钮等组件上展示HTML文档n大多数基于文本的Swing组件,如标签、按钮和菜单项等,都可以指定其文本为HTML文档,这些组件能正确的展示HTML文档。在以下例程7-1的HTMLDemo类创建的图形界面上,包括一个JLable和
5、JButton对象,它们的文本都是HTML文档。例程7-1 HTMLDemo.java1.import java.awt.*;2.import java.awt.event.*;3.import javax.swing.*;4.public class HTMLDemo extends JFrame 5.private JLabel jLabel;6.private JButton jButton;7.1 在按钮等组件上展示HTML文档7.public HTMLDemo(String title)8.super(title);9.10.jLabel=new JLabel(Hello World
6、!);11./假定go.jpg文件与HTMLDemo.class文件位于同一个目录下12.jButton=new JButton(13.);14./设置鼠标移动到该Button时的提示信息15.jButton.setToolTipText(开始);16.17.Container contentPane=getContentPane();18.contentPane.setLayout(new GridLayout(2,1);19.contentPane.add(jLabel);contentPane.add(jButton);20.pack();setVisible(true);21.setD
7、efaultCloseOperation(JFrame.EXIT_ON_CLOSE);22.23.public static void main(String args)new HTMLDemo(Hello);24.7.1 在按钮等组件上展示HTML文档nJButton和JLabel等Swing组件主要支持HTML中的用于指定静态文档或图片的格式的标记,如、和等。但它们不支持HTML3.2中的、和标记,并且不支持HTML4.0中的各种新标记,如、和等。7.2 用JEditorPane组件创建简单的浏览器njavax.swing.JEditorPane类对HTML文档提供了更有力的支持,它支持H
8、TML3.2中的多数标记,能够处理框架、表单和超级链接。JEditorPane类有以下四个构造方法:n(1)public JEditorPane()n(2)public JEditorPane(URL initialPage)throws IOExceptionn(3)public JEditorPane(String url)throws IOExceptionn(4)public JEditorPane(String mimeType,String text)7.2 用JEditorPane组件创建简单的浏览器nJEditorPane类还提供了设置要展示的页面的方法:npublic voi
9、d setPage(URL page)throws IOExceptionnpublic void setPage(String url)throws IOExceptionnpublic void setContentType(String type)npublic void setText(String text)n以上两个setPage()方法指定要展示的页面的URL,setContentType()方法指定文档的类型,可选值包括“text/html”和“text/plain”等,setText()方法指定文档的具体内容。7.2 用JEditorPane组件创建简单的浏览器n以下两段代码
10、是等价的,它们创建的JEditorPane对象都展示变量text指定的HTML文档:/第一段程序代码String text=Hello World!;JEditorPane jep=new JEditorPane(text/html,text);/第二段程序代码String text=Hello World!;JEditorPane jep=new JEditorPane();jep.setContentType(text/html);jep.setText(text);7.2 用JEditorPane组件创建简单的浏览器n以下四段代码的作用是等价的,它们都创建了能展示www.javathin
11、ker.org网站的主页的JEditorPane对象:/第一段代码JEditorPane jep=new JEditorPane(http:/www.javathinker.org);/传入字符串类型参数/第二段代码URL url=new URL(http:/www.javathinker.org);JEditorPane jep=new JEditorPane(url);/传入URL类型参数/第三段代码JEditorPane jep=new JEditorPane();jep.setPage(http:/www.javathinker.org);/传入字符串类型参数/第四段代码JEditor
12、Pane jep=new JEditorPane();URL url=new URL(http:/www.javathinker.org);/传入URL类型参数jep.setPage(url);7.2 用JEditorPane组件创建简单的浏览器nJEditorPane类的实现依赖客户端协议处理框架与HTTP服务器通信,该客户协议处理框架的高层接口就是URL类。如图7-3所示,JEditorPane与URL类协作,就能实现一个简单的浏览器,其中JEditorPane负责展示HTML文档,而URL类负责与HTTP服务器通信。7.2 用JEditorPane组件创建简单的浏览器n 对于JEdito
13、rPane类展示的HTML页面,当用户选择页面上的超级链接,就会触发HyperlinkEvent事件,该事件由HyperlinkListener监听器负责处理。n JEditorPane的addHyperlinkListener()方法用于注册这种监听器。n 在 HyperlinkListener接 口 中 声 明 了 处 理HyperlinkEvent事件的方法:public void hyperlinkUpdate(HyperlinkEvent evt)7.2 用JEditorPane组件创建简单的浏览器nhyperlinkUpdate()方法有一个HyperlinkEvent类型的参数。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 网络 编程 讲义
限制150内