基于java网络浏览器的开发与实现.doc_第1页
基于java网络浏览器的开发与实现.doc_第2页
基于java网络浏览器的开发与实现.doc_第3页
基于java网络浏览器的开发与实现.doc_第4页
基于java网络浏览器的开发与实现.doc_第5页
已阅读5页,还剩110页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

东华理工大学国际教育学院毕业论文 摘要摘 要毫无疑问,网页浏览器已经彻底地改变了历史。对个人来说,它改变了我们的学习方式、言论与交流方式、生活购物方式等等,进而影响了我们的思考方式。对整体来说,整个地球变小了,资源的查找、共享都变得异常方便。网页浏览器( Browser )是一个软件程序,用于与WWW建立联结,并与之进行通信。它可以在WWW系统中根据链接确定信息资源的位置,并将用户感兴趣的信息资源取回来,对 HTML 文件进行解释,然后将文字图像显示出来,或者将多媒体信息还原出来。本网页浏览器是采用JDIC项目提供的WebBrowser组件实现浏览器模块,包括的部分有:菜单栏模块,工具栏模块,地址栏模块,浏览器选项卡模块以及收藏夹模块。1菜单栏模块内容包括文件菜单,转到菜单,调整菜单和收藏夹菜单。主要是通过菜单栏的操作实现网页的前进,后退,停止,刷新和转到功能,还包括收藏夹的新建与整理。2。.工具栏的功能则是实现常用的操作,通过点击工具图标来实现菜单栏中所有的操作。3.地址栏模块则用来接收用户输入的网站地址,然后将该地址传给浏览器组件,呈现指定的网页。4.浏览器选项卡模块实现在同一个窗体中显示多个页面。5.收藏夹模块是本设计中最重要的一部分,包括整理收藏夹菜单和添加收藏夹菜单,可在程序运行的过程中根据用户保存的内容,填充收藏夹的内容,且在网页浏览器重新启动的情况下依旧保留有上次保存的网页。 在最初的功能模块构思中,遇到许多复杂的难题,特别是收藏夹的实现,在开始的时候,收藏夹里的内容与分类都会因为程序的关闭而丢失,一直不能解决,后面查了很多书,才知道因为他们没有被持久化。于是通过资料的学习,用Java的对象序列化技术,来实现收藏夹的持久保存。【关键词】网页浏览器; 模块; 收藏夹;东华理工大学国际教育学院毕业论文 ABSTRACTABSTRACTThere is no doubt that web browser has completely changed our history. For individuals, it changed our way of learning, speech and communication, life way to shop and so on, in turn affected our way of thinking. On the whole, the whole earth has become smaller and the resources to find, share, has become very convenient. Web Browser is a software program for the establishment of links with the WWW, and to communicate with it. It can determine the location of information resources according the WWW system, and take back the interest information resources of users, then interpret the HTML file, and then display the text image, or revert the Multimedia information. The web browser is provided by JDIC Web Browser component to achieve the project browser module, including part are: menu bar module, the toolbar module, the address bar module, the browser bar module and favorite module. 1 The menu bar module includes the file menu , go to the menu, adjust menu and favorites menu. Mainly through the menu bar of the operation to achieve the page forward, backward, stop, refresh and go to features, including new favorites and order. 2 Toolbar function of the operation to achieve common, by clicking on the Tools menu bar icon to realize all the operations .3. The address bar is used to receive user input module website address, and then pass the address of the browser components of a given Web page .4. module browser tab to display the same form multiple pages .5. favorites module is the most important part of the design, including the Organize Favorites menu and Favorites Folder menu, you can run the process according to the user to save the contents of the contents of fill Favorites. And restart the Web browser case still retains the last stored page.In the initial concept of functional modules, face many complex challenges, in particular the realization of favorites, at the beginning of the favorites in the content and classification of the closing will be lost because the program, Yi Zhi can not solve, Houmian check a lot of book, before we know because they were not persistent. So learning through data using Javas object serialization technology to achieve a lasting preservation favorites.Key words Web browser; module; Favorites 东华理工大学国际教育学院毕业论文 目录目 录第一章 绪 论11.1 研究的背景11.2 研究的现状21.3 研究的目的与意义:21.4 研究的方法3第二章.程序开发的基础42.1 Java技术42.1.1 Java概述42.1.2 java平台简介42.1.3JDIC项目简介52.2 实现目标52.3开发环境5第三章系统的总体分析与设计63.1 需求分析63.2 系统结构与设计分析63.2.1 响应模式63.2.2 结构分析73.3 功能结构图7第四章 系统功能与实现841 核心技术84.1.1 JDIC项目实现浏览器组件84.1.2 收藏夹的保存与装载94.1.3阻止IE打开弹出窗口94.2菜单栏的实现94.2.1 文件菜单94.2.2 转到菜单104.2.3 调整菜单114.3 工具栏的实现114.4 地址栏的实现124.5 浏览器选项卡的实现134.5.1 继承扩展浏览器组件134.5.2 编写浏览器面板134.5.3 编写浏览器选项卡面板134.5.4编写浏览器组件监听器144.6 收藏夹的实现144.6.1 添加到收藏夹144.6.2 整理收藏夹14第五章 测试165.1 测试与调试的基本概念165.2 测试时间165.3 软件测试的内容17结论18致谢19参考文献20东华理工大学国际教育学院毕业论文 绪论第一章 绪 论1.1 研究的背景:1991年WorldWideWeb浏览器发布这款由Web之父 Tim Berners-Lee 亲手设计的图形化浏览器还包含一个所见即所得 HTML 编辑器,为了避免同WWW混淆,这个浏览器后来改名为 Nexus。1993年Mosaic发布Internet的流行应该归功于 Mosaic,这款浏览器将Web带向了大众。诸如 IE, Firefox一类的当代浏览器仍然在延用Mosaic的图形化操作界面思想。1994年Netscape成立Marc Andreessen带领Mosaic的程序员成立了Netscape公司,并发布了第一款商业浏览器 Netscape Navigator。1995年IE发布,浏览器之战即将爆发微软针对Netscape发布了他们自己的浏览器,IE,第一场浏览器之战爆发。1996年Opera发布Telenor是挪威最大的通讯公司,他们推出了Opera,并在两年后进军移动市场,推出Opera的移动版。1998年Mozilla项目成立Netscape成立Mozilla开源项目,开发下一代浏览器,后来证明,使用原有代码开发新东西是一种负担,接着他们着手从新开发。1998年Netscape浏览器走向开源随着同 IE 征战的失利,Netscape市场份额急剧下降,Netscape决定将自己的浏览器开源以期重整山河。2002年IE 开始主导浏览器市场市场份额达到95%,借助同操作系统的捆绑优势,IE赢得第一场浏览器之战。2003年,苹果Safari浏览器登场苹果进入了浏览器市场,推出自己的Webkit引擎,该引擎非常优秀,后来被包括Google,Nokia之类的厂商用于手机浏览器。2004年Firefox引发第二场浏览器之战19东华理工大学国际教育学院毕业论文 绪论Firefox 1.0 推出。早在 Beta 测试期间就积累了大量人气的Firefox引发了第二场浏览器之战,当年年底,Firefox已经赢得7.4%的市场份额。2006年IE7发布IE6发布后的第六年,迫于Firefox的压力,微软匆匆推出IE7应战,吸取了Firefox的一些设计思想,如标签式浏览,反钓鱼等。但这款浏览器现在看来并不成功。2008年Google携Chrome参战Google发布了他们自己的浏览器,加入这场战争。轻量,快,异常的稳固让这款浏览器成为不可轻视的一个对手。1.2 研究的现状:随着21世纪新时代的到来,网络越来越普及到各行各业,我们的生活,工作和学习已经和网络都有这息息相关的联系,而网页浏览器的存在无疑使我们对网络的使用更得心应手,如果说浏览器推动了网络的普及与发展,推动了信息社会和经济全球化的到来,那完全是没有任何夸张的。 浏览器作为网络普及中的核心因素之一,它发展可以说是网络的发展的写照。浏览器技术的改进与更新,无疑是网络普及的重要推动力之一。目前运行于PC机上的较受欢迎的WWW浏览器有IE,Navigator,其主要特点有:通过频道和人工输入地址来获取Web站点资源;能够将最近和最常用的网友站点添加到收藏夹河保存在历史文件夹中;提供了键入WEB地址的帮助项及表格自动完成功能;提供缓存网页的功能;更新所选择地Web站点并在空闲时浏览,支持脱机浏览功能;安全浏览Web;支持不同的脚本语言;可以外挂其它程序来支持比如多媒体播放等。而传统浏览器的局限越来越突出出来。主要体现在:网址获取能力差。一般我们通过人工输入来得到网址,这需要用户记忆网址。即浏览器提供了类似于收藏夹或书签之类的功能,也需通过手工加入网址,使用不够方便。语言翻译功能差。由于80%以上的网站位于英语国家,使得网络信息主要以英文为主,这就给中国用户带来了不便,我们只能借助另外的软件来翻译。信息搜索能力差。Internet上的信息不但数量巨大,而且复杂,难以快速获取有用的信息,信息的发布与检索式网路信息服务的主要内容,而浏览器并没有提供一定的搜索能力,需借助于其他的搜索引擎。外挂程序的不足。当今浏览器的外挂程序仅限于对网友浏览的支持,如图像,动画播放等等。而用户需要的还包括文件下载上传,音乐欣赏等实用程序的支持。缺乏个性化服务。IE浏览器虽然内核稳定,能支持多种脚本,但在打开多个窗口时,会消耗大量的系统资源,使浏览速度变慢;而Navigation兼容性太差,且都是单页浏览器,界面固定,不能随用户的喜爱而方便定制客户端界面智能化程度偏低。这是当前浏览器最大的不足,例如缺乏网页的自动分类,却反通过学习用户的配置而自动调整服务策略的能力等。1.3 研究的目的与意义:从各方面来说,网页浏览器都在不断的扩张,它不仅是客户的互联网软件同时正在逐渐的往服务器领域扩张和渗入。最近几年,浏览器正在逐步的进军移动设备,除了桌面浏览器,移动电话浏览器,移动手机浏览器也越来越为人们所熟悉,我相信未来的浏览器将会出现很多新功能,会又恨多新的标准出台。浏览器之未来展望:1.很多Web应用程序依靠javaScript语言运行,基本所有浏览器都把JavaScript运行速度放在首位。2.通过先进技术,浏览器让每一台电脑既成为客户端也成为服务器,从此电脑之间可以直接通过网络进行点对点互动和信息共享,再也不需要通过第三方服务器中转。3.CSS样式和SVG等标准将提高浏览器的图形处理能力。4.在用户的许可下,Geolocation(可设置的全局变量)技术可以让网站知晓你的确切位置。1.4 研究的方法:本项目采用Java技术实现网页浏览器。Java是一个广泛使用的编程语言,它基于Java虚拟机技术,从而实现跨平台。它简单,面向对象,不依赖与机器的结构,具有可移植性,安全性,并且提供了并发的机制,具有很高的性能。其次,它最大限度的利用了网络,Java的小应用程序(applet)可在网络上传输而不受CPU和环境的限制,另外,Java还提供了丰富的类库,使程序设计者可以很方便地建立自己的系统。项目包括菜单栏模块,工具栏模块,地址栏模块,浏览器选项卡模块和收藏夹模块。其中重要的事浏览器选项卡和收藏夹的实现,浏览器选项卡是采用J社团中的一个桌面开发组件项目JDIC项目提供的WebBrowser组件来实现。JDIC包含很多功能组件,其中WebBrowser浏览器组件可以呈现网页内容,包括JavaScript,Flash等都能正确显示,它也可以控制浏览器的后退,前进,刷新,停止和打印等操作。而收藏夹的实现则较为复杂,内容包括选择将网页保存到网络收藏夹后,建立该网页超级链接与关键字属性的映射关系,并将所述映射关系保存在服务器中;在网络收藏夹中选择希望浏览的网页的超级链接后,根据所选择网页的超级链接获取该网页超级链接与该网页关键字属性的映射关系,得到所选择网页的关键字属性,将该关键字属性作为搜索关键字查找与该网页关键字属性匹配并且有效的超级链接,根据查找到的超级链接从对应的网络服务器下载与该超级链接对应的网页并显示。东华理工大学国际教育学院毕业论文 程序开发的技术基础第二章.程序开发的基础2.1 Java技术2.1.1 Java概述Java是一个广泛使用的编程语言,它基于Java虚拟机技术,从而实现跨平台。它简单,面向对象,不依赖与机器的结构,具有可移植性,安全性,并且提供了并发的机制,具有很高的性能。其次,它最大限度的利用了网络,Java的小应用程序(applet)可在网络上传输而不受CPU和环境的限制,另外,Java还提供了丰富的类库,使程序设计者可以很方便地建立自己的系统。 Java平台是一种纯软件平台,它有三个版本Java SE、JavaEE、Java ME。JavaSE允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的Java 应用程序。Java SE还包含了支持Java Web服务开发的类,并为Java EE这个版本提供基础。JavaEE下有很多流行的开发框架,像Struts、Spring、Hibernate这种流行的所谓SSH组合等。JavaME应用领域像各种移动设备和嵌入式设备,比如:手机、PDA、电视机顶盒和打印机。 2.1.2 java平台简介Java平台版本 Java平台版本主要有:J2EE(企业版本)、J2SE(标准版本)、J2ME(迷你版本)。这三个版本有不同的用途,J2EE主要用于分布式的网络程序的开发,如电子商务网站和ERP系统;J2SE主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程。 Java平台的组成 Java平台主要是由一个compiler(编译器),一个运行环境(runtime environment),和一个核心的API组成。 1、JVM(Java虚拟机):Java程序并不是直接在本地机器的操作系统上执行,而是通过JVM解释成本地的机器语言,其优点是可以保证Java代码在Windows、Linux、Solaris等操作系统上的移植性,其代价是执行速度比C代码要慢。考虑到软件越来越庞大,而计算机硬件性能越来越快,而且WEB应用的发展,其代价是可接受的。 2、JDK(Java Development Kit):Java平台开发包;JSDK(Java 2 Software Development Kit):Java 2平台开发包。目前普遍采用J2SDK。 3、JRE(Java Runtime Environment):Java运行环境,一般情况下已集成到J2SDK中,但如果用户只是执行Java程序,而不进行Java代码的开发,则只需安装JRE。 Java环境变量的设置 安装完J2SDK之后,需要设置环境变量,方法如下:控制面板 高级设置 环境变量 系统变量 path里添加一个路径。这个路径是安装J2SDK的bin文件夹的路径。 2.1.3JDIC项目简介 JDesktop Integration Components,或JDIC,是一个给Java开发人员提供通过交差平台API存取本地特性的包罗万象的项目。该项目由Sun的Desktop组启动,目的是让Java应用能更好地和它们所运行的桌面环境集成。为了能从开发人员那里得到想要的特性的快速反馈,他们将JDIC做成了开源项目。尽管目前没有计划,但JDIC团队正考虑把JDIC的特征加入Java核心类库的未来版本中去。JDIC分为五个部分和一个孵化中的项目:桌面:为了打开、编辑和用email邮寄文件来打开桌面程序;文件类型:设置桌面文件类型关联; 浏览器:在AWT画布上嵌入本地浏览器(Internet Explorer或者Mozilla);包装器:把Java Web Start程序转换成本地安装程序的命令行工具;托盘API:支持系统托盘图标和弹出式菜单;lSaverBeans:Java中的系统屏幕保护; 2.2 实现目标本项目是网页浏览器,包括五个部分,菜单栏模块,工具栏模块,地址栏模块,浏览器选项卡模块以及收藏夹模块。1菜单栏模块内容包括文件菜单,转到菜单,调整菜单和收藏夹菜单。主要是通过菜单栏的操作实现网页的前进,后退,停止,刷新和转到功能,还包括收藏夹的新建与整理。2。.工具栏的功能则是实现常用的操作,通过点击工具图标来实现菜单栏中所有的操作。3.地址栏模块则用来接收用户输入的网站地址,然后将该地址传给浏览器组件,呈现指定的网页。4.浏览器选项卡模块实现在同一个窗体中显示多个页面。5.收藏夹模块是本设计中最重要的一部分,包括整理收藏夹菜单和添加收藏夹菜单,可在程序运行的过程中根据用户保存的内容,填充收藏夹的内容,且在网页浏览器重新启动的情况下依旧保留有上次保存的网页。 2.3开发环境以下版本是本次使用:操作系统: Windows XPJava虚拟机: JDK1.6开发工具: MyEclipse5.5东华理工大学国际教育学院毕业论文 系统的总体分析与设计第三章系统的总体分析与设计3.1 需求分析本模块要实现的功能模块包括:菜单栏模块,工具栏模块,地址栏模块,浏览器选项卡模块以及收藏夹模块。1.菜单栏模块内容包括文件菜单,转到菜单,调整菜单和收藏夹菜单。主要是通过菜单栏的操作实现网页的前进,后退,停止,刷新和转到功能,还包括收藏夹的新建与整理。2.工具栏的功能则是实现常用的操作,通过点击工具图标来实现菜单栏中所有的操作。3.地址栏模块则用来接收用户输入的网站地址,然后将该地址传给浏览器组件,呈现指定的网页。4.浏览器选项卡模块实现在同一个窗体中显示多个页面。5.收藏夹模块是本设计中最重要的一部分,包括整理收藏夹菜单和添加收藏夹菜单,可在程序运行的过程中根据用户保存的内容,填充收藏夹的内容,且在网页浏览器重新启动的情况下依旧保留有上次保存的网页。3.2 系统结构与设计分析3.2.1 响应模式用户在地址栏输入一个URL,单击“转到”按钮,请求发出,浏览器内核进行读取识别,并通过特征提取模块进行特征比对,按照网页分类算法对网页类别库中的网页中符合的网页提取出来返回给用户。图1 响应模式3.2.2 结构分析本模块设计的浏览器,有菜单栏,工具栏,地址栏,页面显示区,收藏夹。它的主要特点有:1基于IE内核,采用多窗口多线程工作方式,节约了系统资源,稳定性好,不会像那样因打开多窗口而使系统速度缓慢,甚至出现“程序没有相应“等现象。2对网页自动分类,这是它的特点。当用户在浏览网页进入一个从未到过的网站时,很容易导致迷航,用户先阅读网页才能判定该网页是否是自己所感兴趣的网页。这样,用户把大量时间和精力花费在不必要的网页上,分散了用户的注意力。3. 提供类别导航功能。它将已分类的网站地址置入各类别中,用户可以根据自己感兴趣的主题进行访问和浏览。类别的跟新,修改,添加等维护一般由系统进行,也可由用户自己手动维护。系统可以根据类别的更改而自行调整系统的分类结果。 3.3 功能结构图以下是本模块的功能结构图:图2 功能结构东华理工大学国际教育学院毕业论文 系统功能与实现第四章 系统功能与实现浏览器的窗体是程序的主界面,它包括浏览指定的网站,收藏网站信息等业务。主要由菜单栏,工具栏,地址栏,浏览器选项卡和状态栏组成。41 核心技术4.1.1 JDIC项目实现浏览器组件 浏览器组件API可以让你访问几个浏览器事件以及在历史记录上的控制(向前,后退,刷新)。未来修订的API版本希望能提供更多存取浏览器和任意装载的文档的功能。在你的应用里使用浏览器组件实在是非常容易:import org.jdesktop.jdic.browser.*;import .*;import javax.swing.*;public class BrowserTest public static void main(String args) throws Exception WebBrowser browser = new WebBrowser(); browser.setURL(new URL(); JFrame frame = new JFrame(Browser Test); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().add(browser); frame.pack(); frame.setSize(500,500); frame.setVisible(true); 正如你所看到的那样,WebBrowser对象仅仅是一个你可以把它放入一个标准的Jframe中的AWT组件。Main方法的第一行创建了一个新的WebBrowser,第二行设置了你想显示的URL。其他的代码创建了一个frame,把浏览器加入其中,并使得frame可见记住WebBrowser是个本地AWT组件,因此你可能陷入与Swing结合的困境。混合它们的两个规则是 1)不要让Swing和AWT组件重叠和 2)在你的菜单上调用setLightWeightPopupEnabled(false)否则它们将消失在浏览器组件后边。4.1.2 收藏夹的保存与装载 收藏夹模块的功能可以将正在浏览的网址添加到收藏夹中,并且提供分类,通常的做法是将收藏夹的内容存放在集合类中,如果程序关闭,收藏夹的内容和分类将丢失,因为它们没有被持久化。 将收藏夹持久化的方法有两种: 持久化到数据库可以将收藏夹内容全部保存到数据库中,在程序关闭时,收藏夹的内容保存在数据库而不在内存中,这样可以避免数据丢失,在程序下次启动的时候,可以从数据库中读取收藏夹内容从新显示 持久化到文件中另一种方法将收藏夹的内容保存到一个数据文件中,例如”favorite.data”,这种方法保存收藏夹数据可以节省访问数据库的开销,也可以随浏览器模块一同发布,既方便又节省资源。4.1.3阻止IE打开弹出窗口使用WebBrowser组件编写的浏览器模块,可以在本窗口中浏览各种信息,可以通过超级链接访问其他网页,如果某个超级连接要在新的窗体中打开网页,那么这个网页会默认使用IE或操作系统默认的浏览器打开,这就破坏了模块的外观,使本模块处于可有可无的状态。因此必须拦截这些需要在新窗体显示的网页信息,本模块继承了WebBrowser组件实现了浏览器组件的Browser类,它从写了父类的willOpenWindow()方法,在有需要显示在新窗体的网页信息时,该方法会创建新的选项卡显示这个网页。4.2菜单栏的实现 浏览器模块的菜单栏几乎容纳了所有功能的操作连接,它用于整个浏览器模块的导航,快速方便的执行浏览操作,例如前进,后退,刷新等。4.2.1 文件菜单 文件菜单包括”设置主页”,”打印”,”退出”3个菜单项,其中”设置主页”将用户输入的网址信息创建为URL对象。如果创建URL对象时抛出异常,说明URL格式不标准,将以对话框的形式提示用户URL格式非法,当输入格式正确时,程序将URL对象序列化到收藏夹得数据文件中。 单击打印菜单时,将调用工具栏上”打印”按钮的doClick()方法,执行按钮的鼠标单击操作,程序会执行按钮的时间处理代码。单击菜单栏的“退出”菜单项时,菜单项的事件监听器将调用业务方法完成退出命令。在业务方法中执行了System类的exit()方法退出Java虚拟机,从而终止程序运行。4.2.2 转到菜单转到菜单包含了浏览器的控制命令,这些命令包括”主页”,”前进”后退”停止”刷新”。这些控制命令,在菜单栏中也提供了相应的操作按钮,为减少代码重复,本模块在这些菜单栏的事件处理中直接调用工具栏相应按钮的doClick()方法,执行按钮的业务代码。/ 停止菜单项的业务private void stopMenuItemActionPerformed(java.awt.event.ActionEvent evt) stopButton.doClick(); / 执行停止按钮的单击方法/ 刷新菜单项的业务方法private void refreshMenuItemActionPerformed(java.awt.event.ActionEvent evt) refreshButton.doClick(); / 执行刷新按钮的单击方法/ 后退菜单项的业务方法private void backMenuItemActionPerformed(java.awt.event.ActionEvent evt) backButton.doClick(); / 执行后退按钮的单击方法/ 前进菜单项的业务方法private void forwardMenuItemActionPerformed(java.awt.event.ActionEvent evt) forwardButton.doClick(); / 执行前进按钮的单击方法/ 打印菜单项的业务方法private void printMenuItemActionPerformed(java.awt.event.ActionEvent evt) printButton.doClick(); / 执行主页按钮的单击方法4.2.3 调整菜单 本模块的网页浏览器部分布置在一个选项卡组件中,选项卡的标签名称为网页的标题命名,这样用户可以创建多个选项卡浏览更多的网站。4.3 工具栏的实现 工具栏用于执行常用的操作,网页浏览器模块的控制命令使用最频繁,因此将浏览器的控制命令提取到工具栏中。工具栏上的每个按钮都设置了文本提示,每个按钮都添加了单独的事件监听器,在不同的事件监听器中调用处理该按钮业务的方法。编写各个按钮的事物处理方法,这些业务处理方法被不同按钮的事件监听器调用。浏览器的控制按钮的业务逻辑,基本通过调用Browser浏览器组件的方法实现,例如print()方法可以执行打印任务, / 后退按钮的事件处理方法private void backButtonActionPerformed(java.awt.event.ActionEvent evt) Browser browser = getSelBrowser();if (browser.isBackEnabled() / 如果后退操作可行browser.back(); / 执行后退/ 停止按钮的事件处理方法private void stopButtonActionPerformed(java.awt.event.ActionEvent evt) Browser browser = getSelBrowser();browser.stop(); / 执行停止操作/ 前进按钮的事件处理方法private void forwardButtonActionPerformed(java.awt.event.ActionEvent evt) Browser browser = getSelBrowser();if (browser.isForwardEnabled() / 如果前进操作可行browser.forward(); / 执行前进操作/ 刷新按钮的事件处理方法private void refreshButtonActionPerformed(java.awt.event.ActionEvent evt) Browser browser = getSelBrowser();browser.refresh(); / 执行刷新操作/ 主页按钮的事件处理方法private void homePageButtonActionPerformed(java.awt.event.ActionEvent evt) Browser browser = getSelBrowser();browser.setURL(homePage); / 设置浏览器当前网址4.4 地址栏的实现地址栏是网页浏览器的重要功能,它接收用户输入的将要访问的网站地址,然后将该地址传送给浏览器组件,呈现指定的网页内容。网页浏览器模块的地址栏包含输入网站URL地址的文本框和一个执行浏览业务的“转到”按钮。当用户在地址栏的地址文本框输入网站地址并单击右侧的“转到”按钮时,它下面的浏览器选项卡将创建一个新的选项卡,并在选项卡中放置一个浏览器组件显示新的网页内容。jLabel1.setText(地址:);/ 地址标签addressBar.add(jLabel1, BorderLayout.WEST);/ 添加标签到地址栏address.setText(http:/);/ 设置地址文本框内容addressBar.add(address, BorderLayout.CENTER);/ 添加地址文本框到地址栏goButton.setText(转到);/ 设置转到按的文本goButton.setFocusable(false);goButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);goButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);/ 添加转到按钮的事件监听器,当单击转到按钮时,执行业务方法goButton.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) goButtonActionPerformed(evt);/ 调用转到按钮的业务方法);addressBar.add(goButton, BorderLayout.EAST);/ 添加转到按钮到地址栏4.5 浏览器选项卡的实现 以前的浏览器都是单个窗体的软件,在每次需要同时浏览不同的网站或者在新窗口显示网页的情况下,都需要重新启动或弹出一个浏览器软件来显示指定的网页内容。因此本模块使用浏览器面板作为所有浏览器组件的容器: 4.5.1 继承扩展浏览器组件由于网页的超级链接或JavaScript脚本可以在新的浏览器窗口中显示内容,而新建立的浏览器窗体会使用默认的浏览器打开网页,因此本模块必须继承WebBrowser类来编写自己的浏览器组件类Browser。这样就可以重写父类的willOpenWindow()方法拦截弹出新窗体显示网页内容的事件,然后再该方法中使用自己的事件,在选项卡面板中创建浏览器组件显示网页。 4.5.2 编写浏览器面板将扩展的Browser浏览器组件封装在一个面板中实现浏览器面板,这个面板将被添加到存放浏览器的选项卡面板中.浏览器面板添加了Browser浏览器组件的实例对象,并且为浏览器组件添加了事件监听器。 4.5.3 编写浏览器选项卡面板 本模块的选项卡面板用于存放浏览器组件,使浏览器支持选项卡界面创建选项卡时为面板添加鼠标单击事件,在用户单击选项卡的标签时执行业务方法。另外,还设置了选项卡面板的模型对象,包括选项卡的选择事件的处理方法。CreateBrowser()和getSelBrowser()方法分别用于在选项卡面板创建浏览器面板和获取当前选择的面板中的浏览器组件实例。本模块使用JDIC类库来实现浏览器界面,该类库可以从/地址下载,在IE地址栏输入该网址后,浏览器将显示JDIC的项目首页。下载该类库后是一个压缩文件,将该文件解压缩并将类库的JAR文件和EXE文件添加到Java程序的类路劲中,DLL文件需要放到运行java程序的当前路径,如果是Eclipse的项目中使用该类库,那么DLL文件需要放到项目的根文件夹中,与src同级。4.5.4编写浏览器组件监听器 在编写浏览器面板组件时,在面板中创建了浏览器组件,同时也为该组件添加了事件监听器。4.6 收藏夹的实现收藏夹是浏览器不可缺少的功能,它记录上网时常用的,经典的网站地址。4.6.1 添加到收藏夹在浏览器模块的主窗体上单击”收藏夹”/”添加到收藏夹”菜单项,将启动添加收藏夹功能,该功能能将当前浏览器访问的网站地址添加到收藏夹中,日后可以从收藏夹中直接选择浏览器指定的网址。添加收藏夹功能的实现步骤如下:1 编写”添加到收藏夹”菜单项的业务代码,这个方法将有菜单项的事件监听调用,方法内部获取了选项卡面板当前的选项卡索引,然后使用所有获取选项卡的标题,使用该标题创建了”添加到收藏夹”对话框的实例,把其余的工作交由该对话框实现。2在”添加到收藏夹”对话框中编写初始化收藏夹树组件的方法,该方法将在对话框的构造方法中被调用,它将调用loadMenu()方法添加收藏夹菜单的内容。3编写装载收藏夹菜单内容的loadMenu()方法,该方法使用递归算法遍历收藏夹的数据集合对象,从这个集合对象中装载收藏夹的所有内容到”收藏夹”菜单中。4 编写”确定”按钮的业务处理方法,该方法在用户输入名称标识并单击按钮时被”确定”按钮的事件监听器调用,它将完成从读取用户输入名称标识到保存网站地址到收藏夹的全过程。4.6.2 整理收藏夹 整理收藏夹的实现比较复杂,它的树组件要显示的收藏夹内容包括文件夹和收藏的网址信息,而且可以对这些信息进行维护和移动操作。其中包括”创建文件夹”,”重命名”,”删除”操作。 实现过程如下:1 编写”整理收藏夹”菜单项的业务处理方法,该方法将在单击该菜单时由菜单项的时间监听器调用,方法的实现非常简单,因为所有业务都由”整理收藏夹”对话框完成。2 编写”整理收藏夹”对话框的构造方法,在构造方法中分别调用初始化对话框界面的方法和初始化收藏夹树组件的方法。3编写初始化树组件的方法,该方法将调用loadFavoriteNode()方法装载树节点内容,4 编写装载树组件节点内容的方法,该方法使用了递归方法,原因是要遍历的内容包括子节点的嵌套。6 编写”重命名”按钮的事件处理方法,作为维护操作重命名是必不可少的,特别是收藏夹中的文件夹。如果没有重命名,则需要删除文件,重新建立;如果文件夹中包含大量的收藏信息,会损失很多资源。单击”重命名”按钮时,将在事件监听器中调用该方法完成命名操作。7 编写”删除”按钮的事件处理方法,该方法将在”删除”按钮的事件监听器中被调用。8 编写”移动到”按钮的事件处理方法,该方法用于移动收藏选项到其他文件夹中,其按钮的事件监听器将调用该方法。 东华理工大学国际教育学院毕业论文 测试第五章 测试5.1 测试与调试的基本概念软件测试是整个系统开发过程中一个重要环节,是成功开发本系统的重要保证。软件测试阶段的主要任务是发现并排除在分析、设计、编码各阶段中产生的各种类型的错误,以得到可使用的软件系统。常用的软件测试方法有两大类:静态测试方法和动态测试方法。静态测试方法是程序远普遍采用的一种方法,其内容主要是通过人工模拟软件系统的执行方式,以代码会审、走查、办公室检查的形式分析或核查系统的功能实现、编码过程的正确性。动态测试方法是通过输入一组预先按照一定的测试准则构造的实例数据来动态运行程序,而达到发现程序错误的过程。按照通常的软件系统测试,可以分别进行单元测试、集成测试、确认测试、系统测试,最后进行验收测试,即由用户通过试用系统而进行测试,检验系统的可用性及与用户配合的程度。调试是软件开发过程中最艰巨的脑力劳动,调试开始时,软件开发者仅仅面对着错误的征兆,然而在问题的外部现象和内在原因之间往往并没有明显的联系,在组成程序的密密麻麻的元素中,每一个都可能是错误的根源。如何能在浩如烟海的程序元素中找到有错误的那个(或几个)元素,这是调试过程中最关键的技术问题。本设计中调试的方法主要是设置断点跟踪。使用断点跟踪可以找到程序的出错位置,缩小查找错误的范围,提高调试的效率。调试的任务是及时改正测试过程中发现的软件错误。具体地说,调试过程由两个步骤组成,它从表示程序中存在错误的某迹象开始,首先确定错误的准确位置,也就是找出哪个模块或哪个语句引起的错误。然后仔细研究推断代码以确定问题的原因,并设法改正。现阶段己研究出一些帮助调试的技术,主要有输出存储器内容、打印语句和自动工具。5.2 测试时间本系统的测试分为以下几个阶段进行:第一阶段: 根据需求分析划定软件中要测试的功能和性能的范围,确定测试的内容。第二阶段: 分模块对系统中的各模块进行测试,对需求分析

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论