版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 摘 要</b></p><p> 毫無疑問,網(wǎng)頁瀏覽器已經(jīng)徹底地改變了歷史。對個(gè)人來說,它改變了我們的學(xué)習(xí)方式、言論與交流方式、生活購物方式等等,進(jìn)而影響了我們的思考方式。對整體來說,整個(gè)地球變小了,資源的查找、共享都變得異常方便。網(wǎng)頁瀏覽器( Browser )是一個(gè)軟件程序,用于與WWW建立聯(lián)結(jié),并與之進(jìn)行通信。它可以在WWW系統(tǒng)中根據(jù)鏈接確定信息資源的
2、位置,并將用戶感興趣的信息資源取回來,對 HTML 文件進(jìn)行解釋,然后將文字圖像顯示出來,或者將多媒體信息還原出來。</p><p> 本網(wǎng)頁瀏覽器是采用JDIC項(xiàng)目提供的WebBrowser組件實(shí)現(xiàn)瀏覽器模塊,包括的部分有:菜單欄模塊,工具欄模塊,地址欄模塊,瀏覽器選項(xiàng)卡模塊以及收藏夾模塊。1菜單欄模塊內(nèi)容包括文件菜單,轉(zhuǎn)到菜單,調(diào)整菜單和收藏夾菜單。主要是通過菜單欄的操作實(shí)現(xiàn)網(wǎng)頁的前進(jìn),后退,停止,刷新和轉(zhuǎn)
3、到功能,還包括收藏夾的新建與整理。2。.工具欄的功能則是實(shí)現(xiàn)常用的操作,通過點(diǎn)擊工具圖標(biāo)來實(shí)現(xiàn)菜單欄中所有的操作。3.地址欄模塊則用來接收用戶輸入的網(wǎng)站地址,然后將該地址傳給瀏覽器組件,呈現(xiàn)指定的網(wǎng)頁。4.瀏覽器選項(xiàng)卡模塊實(shí)現(xiàn)在同一個(gè)窗體中顯示多個(gè)頁面。5.收藏夾模塊是本設(shè)計(jì)中最重要的一部分,包括整理收藏夾菜單和添加收藏夾菜單,可在程序運(yùn)行的過程中根據(jù)用戶保存的內(nèi)容,填充收藏夾的內(nèi)容,且在網(wǎng)頁瀏覽器重新啟動(dòng)的情況下依舊保留有上次保存的網(wǎng)
4、頁。 </p><p> 在最初的功能模塊構(gòu)思中,遇到許多復(fù)雜的難題,特別是收藏夾的實(shí)現(xiàn),在開始的時(shí)候,收藏夾里的內(nèi)容與分類都會(huì)因?yàn)槌绦虻年P(guān)閉而丟失,一直不能解決,后面查了很多書,才知道因?yàn)樗麄儧]有被持久化。于是通過資料的學(xué)習(xí),用Java的對象序列化技術(shù),來實(shí)現(xiàn)收藏夾的持久保存。</p><p> 【關(guān)鍵詞】網(wǎng)頁瀏覽器; 模塊; 收藏夾;</p><p>&
5、lt;b> ABSTRACT</b></p><p> There 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
6、 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 w
7、ith the WWW, and to communicate with it. It can determine the location of information resources according the W</p><p> The web browser is provided by JDIC Web Browser component to achieve the project brows
8、er 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 favo
9、rites 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 ope</p><p> In
10、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
11、 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 Java's object serialization technology to achieve a lasting preservat
12、ion favorites.</p><p> Key words Web browser; module; Favorites</p><p><b> 目 錄</b></p><p> 第一章 緒 論1</p><p> 1.1 研究的背景1</p><p> 1.2
13、 研究的現(xiàn)狀2</p><p> 1.3 研究的目的與意義:2</p><p> 1.4 研究的方法3</p><p> 第二章.程序開發(fā)的基礎(chǔ)4</p><p> 2.1 Java技術(shù)4</p><p> 2.1.1 Java概述4</p><p> 2.1.2 ja
14、va平臺(tái)簡介4</p><p> 2.1.3JDIC項(xiàng)目簡介5</p><p> 2.2 實(shí)現(xiàn)目標(biāo)5</p><p><b> 2.3開發(fā)環(huán)境5</b></p><p> 第三章.系統(tǒng)的總體分析與設(shè)計(jì)6</p><p> 3.1 需求分析6</p><p&
15、gt; 3.2 系統(tǒng)結(jié)構(gòu)與設(shè)計(jì)分析6</p><p> 3.2.1 響應(yīng)模式6</p><p> 3.2.2 結(jié)構(gòu)分析7</p><p> 3.3 功能結(jié)構(gòu)圖7</p><p> 第四章 系統(tǒng)功能與實(shí)現(xiàn)8</p><p> 4.1 核心技術(shù)8</p><p> 4.1.
16、1 JDIC項(xiàng)目實(shí)現(xiàn)瀏覽器組件8</p><p> 4.1.2 收藏夾的保存與裝載9</p><p> 4.1.3阻止IE打開彈出窗口9</p><p> 4.2菜單欄的實(shí)現(xiàn)9</p><p> 4.2.1 文件菜單9</p><p> 4.2.2 轉(zhuǎn)到菜單10</p><p
17、> 4.2.3 調(diào)整菜單11</p><p> 4.3 工具欄的實(shí)現(xiàn)11</p><p> 4.4 地址欄的實(shí)現(xiàn)12</p><p> 4.5 瀏覽器選項(xiàng)卡的實(shí)現(xiàn)13</p><p> 4.5.1 繼承擴(kuò)展瀏覽器組件13</p><p> 4.5.2 編寫瀏覽器面板13</p>
18、<p> 4.5.3 編寫瀏覽器選項(xiàng)卡面板13</p><p> 4.5.4編寫瀏覽器組件監(jiān)聽器14</p><p> 4.6 收藏夾的實(shí)現(xiàn)14</p><p> 4.6.1 添加到收藏夾14</p><p> 4.6.2 整理收藏夾14</p><p><b> 第五章
19、測試16</b></p><p> 5.1 測試與調(diào)試的基本概念16</p><p> 5.2 測試時(shí)間16</p><p> 5.3 軟件測試的內(nèi)容17</p><p><b> 結(jié)論18</b></p><p><b> 致謝19</b>
20、</p><p><b> 參考文獻(xiàn)20</b></p><p><b> 第一章 緒 論</b></p><p> 1.1 研究的背景:</p><p> 1991年WorldWideWeb瀏覽器發(fā)布</p><p> 這款由Web之父 Tim Berners
21、-Lee 親手設(shè)計(jì)的圖形化瀏覽器還包含一個(gè)所見即所得 HTML 編輯器,為了避免同WWW混淆,這個(gè)瀏覽器后來改名為 Nexus。</p><p> 1993年Mosaic發(fā)布</p><p> Internet的流行應(yīng)該歸功于 Mosaic,這款瀏覽器將Web帶向了大眾。諸如 IE, Firefox一類的當(dāng)代瀏覽器仍然在延用Mosaic的圖形化操作界面思想。</p>&l
22、t;p> 1994年Netscape成立</p><p> Marc Andreessen帶領(lǐng)Mosaic的程序員成立了Netscape公司,并發(fā)布了第一款商業(yè)瀏覽器 Netscape Navigator。</p><p> 1995年IE發(fā)布,瀏覽器之戰(zhàn)即將爆發(fā)</p><p> 微軟針對Netscape發(fā)布了他們自己的瀏覽器,IE,第一場瀏覽器之戰(zhàn)
23、爆發(fā)。</p><p> 1996年Opera發(fā)布</p><p> Telenor是挪威最大的通訊公司,他們推出了Opera,并在兩年后進(jìn)軍移動(dòng)市場,推出Opera的移動(dòng)版。</p><p> 1998年Mozilla項(xiàng)目成立</p><p> Netscape成立Mozilla開源項(xiàng)目,開發(fā)下一代瀏覽器,后來證明,使用原有代碼開發(fā)
24、新東西是一種負(fù)擔(dān),接著他們著手從新開發(fā)。</p><p> 1998年Netscape瀏覽器走向開源</p><p> 隨著同 IE 征戰(zhàn)的失利,Netscape市場份額急劇下降,Netscape決定將自己的瀏覽器開源以期重整山河。</p><p> 2002年IE 開始主導(dǎo)瀏覽器市場</p><p> 市場份額達(dá)到95%,借助同操作
25、系統(tǒng)的捆綁優(yōu)勢,IE贏得第一場瀏覽器之戰(zhàn)。</p><p> 2003年,蘋果Safari瀏覽器登場</p><p> 蘋果進(jìn)入了瀏覽器市場,推出自己的Webkit引擎,該引擎非常優(yōu)秀,后來被包括Google,Nokia之類的廠商用于手機(jī)瀏覽器。</p><p> 2004年Firefox引發(fā)第二場瀏覽器之戰(zhàn)</p><p> Fir
26、efox 1.0 推出。早在 Beta 測試期間就積累了大量人氣的Firefox引發(fā)了第二場瀏覽器之戰(zhàn),當(dāng)年年底,F(xiàn)irefox已經(jīng)贏得7.4%的市場份額。</p><p> 2006年IE7發(fā)布</p><p> IE6發(fā)布后的第六年,迫于Firefox的壓力,微軟匆匆推出IE7應(yīng)戰(zhàn),吸取了Firefox的一些設(shè)計(jì)思想,如標(biāo)簽式瀏覽,反釣魚等。但這款瀏覽器現(xiàn)在看來并不成功。</
27、p><p> 2008年Google攜Chrome參戰(zhàn)</p><p> Google發(fā)布了他們自己的瀏覽器,加入這場戰(zhàn)爭。輕量,快,異常的穩(wěn)固讓這款瀏覽器成為不可輕視的一個(gè)對手。</p><p> 1.2 研究的現(xiàn)狀:</p><p> 隨著21世紀(jì)新時(shí)代的到來,網(wǎng)絡(luò)越來越普及到各行各業(yè),我們的生活,工作和學(xué)習(xí)已經(jīng)和網(wǎng)絡(luò)都有這息息相關(guān)的
28、聯(lián)系,而網(wǎng)頁瀏覽器的存在無疑使我們對網(wǎng)絡(luò)的使用更得心應(yīng)手,如果說瀏覽器推動(dòng)了網(wǎng)絡(luò)的普及與發(fā)展,推動(dòng)了信息社會(huì)和經(jīng)濟(jì)全球化的到來,那完全是沒有任何夸張的。 瀏覽器作為網(wǎng)絡(luò)普及中的核心因素之一,它發(fā)展可以說是網(wǎng)絡(luò)的發(fā)展的寫照。瀏覽器技術(shù)的改進(jìn)與更新,無疑是網(wǎng)絡(luò)普及的重要推動(dòng)力之一。</p><p> 目前運(yùn)行于PC機(jī)上的較受歡迎的WWW瀏覽器有IE,Navigator,其主要特點(diǎn)有:通過頻道和人工輸入地址來獲取We
29、b站點(diǎn)資源;能夠?qū)⒆罱妥畛S玫木W(wǎng)友站點(diǎn)添加到收藏夾河保存在歷史文件夾中;提供了鍵入WEB地址的幫助項(xiàng)及表格自動(dòng)完成功能;提供緩存網(wǎng)頁的功能;更新所選擇地Web站點(diǎn)并在空閑時(shí)瀏覽,支持脫機(jī)瀏覽功能;安全瀏覽Web;支持不同的腳本語言;可以外掛其它程序來支持比如多媒體播放等。而傳統(tǒng)瀏覽器的局限越來越突出出來。主要體現(xiàn)在:</p><p> 網(wǎng)址獲取能力差。一般我們通過人工輸入來得到網(wǎng)址,這需要用戶記憶網(wǎng)址。即瀏覽
30、器提供了類似于收藏夾或書簽之類的功能,也需通過手工加入網(wǎng)址,使用不夠方便。</p><p> 語言翻譯功能差。由于80%以上的網(wǎng)站位于英語國家,使得網(wǎng)絡(luò)信息主要以英文為主,這就給中國用戶帶來了不便,我們只能借助另外的軟件來翻譯。</p><p> 信息搜索能力差。Internet上的信息不但數(shù)量巨大,而且復(fù)雜,難以快速獲取有用的信息,信息的發(fā)布與檢索式網(wǎng)路信息服務(wù)的主要內(nèi)容,而瀏覽器并
31、沒有提供一定的搜索能力,需借助于其他的搜索引擎。</p><p> 外掛程序的不足。當(dāng)今瀏覽器的外掛程序僅限于對網(wǎng)友瀏覽的支持,如圖像,動(dòng)畫播放等等。而用戶需要的還包括文件下載上傳,音樂欣賞等實(shí)用程序的支持。</p><p> 缺乏個(gè)性化服務(wù)。IE瀏覽器雖然內(nèi)核穩(wěn)定,能支持多種腳本,但在打開多個(gè)窗口時(shí),會(huì)消耗大量的系統(tǒng)資源,使瀏覽速度變慢;而Navigation兼容性太差,且都是單頁瀏
32、覽器,界面固定,不能隨用戶的喜愛而方便定制客戶端界面</p><p> 智能化程度偏低。這是當(dāng)前瀏覽器最大的不足,例如缺乏網(wǎng)頁的自動(dòng)分類,卻反通過學(xué)習(xí)用戶的配置而自動(dòng)調(diào)整服務(wù)策略的能力等。</p><p> 1.3 研究的目的與意義:</p><p> 從各方面來說,網(wǎng)頁瀏覽器都在不斷的擴(kuò)張,它不僅是客戶的互聯(lián)網(wǎng)軟件同時(shí)正在逐漸的往服務(wù)器領(lǐng)域擴(kuò)張和滲入。最近
33、幾年,瀏覽器正在逐步的進(jìn)軍移動(dòng)設(shè)備,除了桌面瀏覽器,移動(dòng)電話瀏覽器,移動(dòng)手機(jī)瀏覽器也越來越為人們所熟悉,我相信未來的瀏覽器將會(huì)出現(xiàn)很多新功能,會(huì)又恨多新的標(biāo)準(zhǔn)出臺(tái)。</p><p><b> 瀏覽器之未來展望:</b></p><p> 1.很多Web應(yīng)用程序依靠javaScript語言運(yùn)行,基本所有瀏覽器都把JavaScript運(yùn)行速度放在首位。</p&g
34、t;<p> 2.通過先進(jìn)技術(shù),瀏覽器讓每一臺(tái)電腦既成為客戶端也成為服務(wù)器,從此電腦之間可以直接通過網(wǎng)絡(luò)進(jìn)行點(diǎn)對點(diǎn)互動(dòng)和信息共享,再也不需要通過第三方服務(wù)器中轉(zhuǎn)。</p><p> 3.CSS樣式和SVG等標(biāo)準(zhǔn)將提高瀏覽器的圖形處理能力。4.在用戶的許可下,Geolocation(可設(shè)置的全局變量)技術(shù)可以讓網(wǎng)站知曉你的確切位置。</p><p> 1.4 研究的方法:
35、</p><p> 本項(xiàng)目采用Java技術(shù)實(shí)現(xiàn)網(wǎng)頁瀏覽器。Java是一個(gè)廣泛使用的編程語言,它基于Java虛擬機(jī)技術(shù),從而實(shí)現(xiàn)跨平臺(tái)。它簡單,面向?qū)ο?不依賴與機(jī)器的結(jié)構(gòu),具有可移植性,安全性,并且提供了并發(fā)的機(jī)制,具有很高的性能。其次,它最大限度的利用了網(wǎng)絡(luò),Java的小應(yīng)用程序(applet)可在網(wǎng)絡(luò)上傳輸而不受CPU和環(huán)境的限制,另外,Java還提供了豐富的類庫,使程序設(shè)計(jì)者可以很方便地建立自己的系統(tǒng)。項(xiàng)
36、目包括菜單欄模塊,工具欄模塊,地址欄模塊,瀏覽器選項(xiàng)卡模塊和收藏夾模塊。</p><p> 其中重要的事瀏覽器選項(xiàng)卡和收藏夾的實(shí)現(xiàn),瀏覽器選項(xiàng)卡是采用Java.net社團(tuán)中的一個(gè)桌面開發(fā)組件項(xiàng)目JDIC項(xiàng)目提供的WebBrowser組件來實(shí)現(xiàn)。JDIC包含很多功能組件,其中WebBrowser瀏覽器組件可以呈現(xiàn)網(wǎng)頁內(nèi)容,包括JavaScript,Flash等都能正確顯示,它也可以控制瀏覽器的后退,前進(jìn),刷新,停
37、止和打印等操作。而收藏夾的實(shí)現(xiàn)則較為復(fù)雜,內(nèi)容包括選擇將網(wǎng)頁保存到網(wǎng)絡(luò)收藏夾后,建立該網(wǎng)頁超級鏈接與關(guān)鍵字屬性的映射關(guān)系,并將所述映射關(guān)系保存在服務(wù)器中;在網(wǎng)絡(luò)收藏夾中選擇希望瀏覽的網(wǎng)頁的超級鏈接后,根據(jù)所選擇網(wǎng)頁的超級鏈接獲取該網(wǎng)頁超級鏈接與該網(wǎng)頁關(guān)鍵字屬性的映射關(guān)系,得到所選擇網(wǎng)頁的關(guān)鍵字屬性,將該關(guān)鍵字屬性作為搜索關(guān)鍵字查找與該網(wǎng)頁關(guān)鍵字屬性匹配并且有效的超級鏈接,根據(jù)查找到的超級鏈接從對應(yīng)的網(wǎng)絡(luò)服務(wù)器下載與該超級鏈接對應(yīng)的網(wǎng)頁并
38、顯示。</p><p> 第二章.程序開發(fā)的基礎(chǔ)</p><p> 2.1 Java技術(shù)</p><p> 2.1.1 Java概述</p><p> Java是一個(gè)廣泛使用的編程語言,它基于Java虛擬機(jī)技術(shù),從而實(shí)現(xiàn)跨平臺(tái)。它簡單,面向?qū)ο?不依賴與機(jī)器的結(jié)構(gòu),具有可移植性,安全性,并且提供了并發(fā)的機(jī)制,具有很高的性能。其次,它最
39、大限度的利用了網(wǎng)絡(luò),Java的小應(yīng)用程序(applet)可在網(wǎng)絡(luò)上傳輸而不受CPU和環(huán)境的限制,另外,Java還提供了豐富的類庫,使程序設(shè)計(jì)者可以很方便地建立自己的系統(tǒng)。 Java平臺(tái)是一種純軟件平臺(tái),它有三個(gè)版本Java SE、JavaEE、Java ME。</p><p> JavaSE允許開發(fā)和部署在桌面、服務(wù)器、嵌入式環(huán)境和實(shí)時(shí)環(huán)境中使用的Java 應(yīng)用程序。Java SE還包含了支持Java Web服
40、務(wù)開發(fā)的類,并為Java EE這個(gè)版本提供基礎(chǔ)。JavaEE下有很多流行的開發(fā)框架,像Struts、Spring、Hibernate這種流行的所謂SSH組合等。JavaME應(yīng)用領(lǐng)域像各種移動(dòng)設(shè)備和嵌入式設(shè)備,比如:手機(jī)、PDA、電視機(jī)頂盒和打印機(jī)。 </p><p> 2.1.2 java平臺(tái)簡介</p><p> Java平臺(tái)版本 Java平臺(tái)版本主要有:J2EE(企業(yè)版本)、J2
41、SE(標(biāo)準(zhǔn)版本)、J2ME(迷你版本)。這三個(gè)版本有不同的用途,J2EE主要用于分布式的網(wǎng)絡(luò)程序的開發(fā),如電子商務(wù)網(wǎng)站和ERP系統(tǒng);J2SE主要用于桌面應(yīng)用軟件的編程;J2ME主要應(yīng)用于嵌入是系統(tǒng)開發(fā),如手機(jī)和PDA的編程。 Java平臺(tái)的組成 Java平臺(tái)主要是由一個(gè)compiler(編譯器),一個(gè)運(yùn)行環(huán)境(runtime environment),和一個(gè)核心的API組成。 1、JVM(Java虛擬機(jī)):Java程序
42、并不是直接在本地機(jī)器的操作系統(tǒng)上執(zhí)行,而是通過JVM解釋成本地的機(jī)器語言,其優(yōu)點(diǎn)是可以保證Java代碼在Windows、Linux、Solaris等操作系統(tǒng)上的移植性,其代價(jià)是執(zhí)行速度比C代碼要慢??紤]到軟件越來越龐大,而計(jì)算機(jī)硬件性能越來越快,而且WEB應(yīng)用的發(fā)展,其代價(jià)是可接受的。 2、JDK(Java Development Kit):Java平臺(tái)開發(fā)包;JSDK(Java 2 Software Development K
43、it):Java 2平臺(tái)開發(fā)包。目前普遍采用J2S</p><p> 2.1.3JDIC項(xiàng)目簡介</p><p> JDesktop Integration Components,或JDIC,是一個(gè)給Java開發(fā)人員提供通過交差平臺(tái)API存取本地特性的包羅萬象的項(xiàng)目。該項(xiàng)目由Sun的Desktop組啟動(dòng),目的是讓Java應(yīng)用能更好地和它們所運(yùn)行的桌面環(huán)境集成。為了能從開發(fā)人員那里得到想
44、要的特性的快速反饋,他們將JDIC做成了開源項(xiàng)目。盡管目前沒有計(jì)劃,但JDIC團(tuán)隊(duì)正考慮把JDIC的特征加入Java核心類庫的未來版本中去。</p><p> JDIC分為五個(gè)部分和一個(gè)孵化中的項(xiàng)目:</p><p> 桌面:為了打開、編輯和用email郵寄文件來打開桌面程序;</p><p> 文件類型:設(shè)置桌面文件類型關(guān)聯(lián); </p><
45、;p> 瀏覽器:在AWT畫布上嵌入本地瀏覽器(Internet Explorer或者M(jìn)ozilla);</p><p> 包裝器:把Java Web Start程序轉(zhuǎn)換成本地安裝程序的命令行工具;</p><p> 托盤API:支持系統(tǒng)托盤圖標(biāo)和彈出式菜單;</p><p> lSaverBeans:Java中的系統(tǒng)屏幕保護(hù);</p>&
46、lt;p><b> 2.2 實(shí)現(xiàn)目標(biāo)</b></p><p> 本項(xiàng)目是網(wǎng)頁瀏覽器,包括五個(gè)部分,菜單欄模塊,工具欄模塊,地址欄模塊,瀏覽器選項(xiàng)卡模塊以及收藏夾模塊。</p><p> 1菜單欄模塊內(nèi)容包括文件菜單,轉(zhuǎn)到菜單,調(diào)整菜單和收藏夾菜單。主要是通過菜單欄的操作實(shí)現(xiàn)網(wǎng)頁的前進(jìn),后退,停止,刷新和轉(zhuǎn)到功能,還包括收藏夾的新建與整理。</p>
47、;<p> 2。.工具欄的功能則是實(shí)現(xiàn)常用的操作,通過點(diǎn)擊工具圖標(biāo)來實(shí)現(xiàn)菜單欄中所有的操作。</p><p> 3.地址欄模塊則用來接收用戶輸入的網(wǎng)站地址,然后將該地址傳給瀏覽器組件,呈現(xiàn)指定的網(wǎng)頁。</p><p> 4.瀏覽器選項(xiàng)卡模塊實(shí)現(xiàn)在同一個(gè)窗體中顯示多個(gè)頁面。</p><p> 5.收藏夾模塊是本設(shè)計(jì)中最重要的一部分,包括整理收藏夾
48、菜單和添加收藏夾菜單,可在程序運(yùn)行的過程中根據(jù)用戶保存的內(nèi)容,填充收藏夾的內(nèi)容,且在網(wǎng)頁瀏覽器重新啟動(dòng)的情況下依舊保留有上次保存的網(wǎng)頁。 </p><p><b> 2.3開發(fā)環(huán)境</b></p><p> 以下版本是本次使用:</p><p> 操作系統(tǒng): Windows XP</p><p> Java虛擬
49、機(jī): JDK1.6</p><p> 開發(fā)工具: MyEclipse5.5</p><p> 第三章.系統(tǒng)的總體分析與設(shè)計(jì)</p><p><b> 3.1 需求分析</b></p><p> 本模塊要實(shí)現(xiàn)的功能模塊包括:菜單欄模塊,工具欄模塊,地址欄模塊,瀏覽器選項(xiàng)卡模塊以及收藏夾模塊。</p>
50、<p> 1.菜單欄模塊內(nèi)容包括文件菜單,轉(zhuǎn)到菜單,調(diào)整菜單和收藏夾菜單。主要是通過菜單欄的操作實(shí)現(xiàn)網(wǎng)頁的前進(jìn),后退,停止,刷新和轉(zhuǎn)到功能,還包括收藏夾的新建與整理。</p><p> 2.工具欄的功能則是實(shí)現(xiàn)常用的操作,通過點(diǎn)擊工具圖標(biāo)來實(shí)現(xiàn)菜單欄中所有的操作。</p><p> 3.地址欄模塊則用來接收用戶輸入的網(wǎng)站地址,然后將該地址傳給瀏覽器組件,呈現(xiàn)指定的網(wǎng)頁。&l
51、t;/p><p> 4.瀏覽器選項(xiàng)卡模塊實(shí)現(xiàn)在同一個(gè)窗體中顯示多個(gè)頁面。</p><p> 5.收藏夾模塊是本設(shè)計(jì)中最重要的一部分,包括整理收藏夾菜單和添加收藏夾菜單,可在程序運(yùn)行的過程中根據(jù)用戶保存的內(nèi)容,填充收藏夾的內(nèi)容,且在網(wǎng)頁瀏覽器重新啟動(dòng)的情況下依舊保留有上次保存的網(wǎng)頁。</p><p> 3.2 系統(tǒng)結(jié)構(gòu)與設(shè)計(jì)分析</p><p&g
52、t; 3.2.1 響應(yīng)模式</p><p> 用戶在地址欄輸入一個(gè)URL,單擊“轉(zhuǎn)到”按鈕,請求發(fā)出,瀏覽器內(nèi)核進(jìn)行讀取識別,并通過特征提取模塊進(jìn)行特征比對,按照網(wǎng)頁分類算法對網(wǎng)頁類別庫中的網(wǎng)頁中符合的網(wǎng)頁提取出來返回給用戶。</p><p><b> 圖1 響應(yīng)模式</b></p><p> 3.2.2 結(jié)構(gòu)分析</p>
53、<p> 本模塊設(shè)計(jì)的瀏覽器,有菜單欄,工具欄,地址欄,頁面顯示區(qū),收藏夾。</p><p><b> 它的主要特點(diǎn)有:</b></p><p> 1基于IE內(nèi)核,采用多窗口多線程工作方式,節(jié)約了系統(tǒng)資源,穩(wěn)定性好,不會(huì)像那樣因打開多窗口而使系統(tǒng)速度緩慢,甚至出現(xiàn)“程序沒有相應(yīng)“等現(xiàn)象。</p><p> 2.對網(wǎng)頁自動(dòng)分類
54、,這是它的特點(diǎn)。當(dāng)用戶在瀏覽網(wǎng)頁進(jìn)入一個(gè)從未到過的網(wǎng)站時(shí),很容易導(dǎo)致迷航,用戶先閱讀網(wǎng)頁才能判定該網(wǎng)頁是否是自己所感興趣的網(wǎng)頁。這樣,用戶把大量時(shí)間和精力花費(fèi)在不必要的網(wǎng)頁上,分散了用戶的注意力。</p><p> 3. 提供類別導(dǎo)航功能。它將已分類的網(wǎng)站地址置入各類別中,用戶可以根據(jù)自己感興趣的主題進(jìn)行訪問和瀏覽。類別的跟新,修改,添加等維護(hù)一般由系統(tǒng)進(jìn)行,也可由用戶自己手動(dòng)維護(hù)。系統(tǒng)可以根據(jù)類別的更改而自行
55、調(diào)整系統(tǒng)的分類結(jié)果。 </p><p><b> 3.3 功能結(jié)構(gòu)圖</b></p><p> 以下是本模塊的功能結(jié)構(gòu)圖:</p><p><b> 圖2 功能結(jié)構(gòu)</b></p><p> 第四章 系統(tǒng)功能與實(shí)現(xiàn)</p><p> 瀏覽器的窗體是程序的主界面,它包
56、括瀏覽指定的網(wǎng)站,收藏網(wǎng)站信息等業(yè)務(wù)。主要由菜單欄,工具欄,地址欄,瀏覽器選項(xiàng)卡和狀態(tài)欄組成。</p><p><b> 4.1 核心技術(shù)</b></p><p> 4.1.1 JDIC項(xiàng)目實(shí)現(xiàn)瀏覽器組件</p><p> 瀏覽器組件API可以讓你訪問幾個(gè)瀏覽器事件以及在歷史記錄上的控制(向前,后退,刷新)。未來修訂的API版本希望能提
57、供更多存取瀏覽器和任意裝載的文檔的功能。</p><p> 在你的應(yīng)用里使用瀏覽器組件實(shí)在是非常容易:</p><p> import org.jdesktop.jdic.browser.*;</p><p> import java.net.*;</p><p> import javax.swing.*;</p>&
58、lt;p> public class BrowserTest {</p><p> public static void main(String[] args) throws Exception {</p><p> WebBrowser browser = new WebBrowser();</p><p> browser.setURL(new U
59、RL("http://java.net"));</p><p> JFrame frame = new JFrame("Browser Test");</p><p> frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);</p><p> frame.getCont
60、entPane().add(browser);</p><p> frame.pack();</p><p> frame.setSize(500,500);</p><p> frame.setVisible(true);</p><p><b> }</b></p><p><b
61、> }</b></p><p> 正如你所看到的那樣,WebBrowser對象僅僅是一個(gè)你可以把它放入一個(gè)標(biāo)準(zhǔn)的Jframe中的AWT組件。Main方法的第一行創(chuàng)建了一個(gè)新的WebBrowser,第二行設(shè)置了你想顯示的URL。其他的代碼創(chuàng)建了一個(gè)frame,把瀏覽器加入其中,并使得frame可見</p><p> 記住WebBrowser是個(gè)本地AWT組件,因此你可
62、能陷入與Swing結(jié)合的困境?;旌纤鼈兊膬蓚€(gè)規(guī)則是 1)不要讓Swing和AWT組件重疊和 2)在你的菜單上調(diào)用setLightWeightPopupEnabled(false)否則它們將消失在瀏覽器組件后邊。</p><p> 4.1.2 收藏夾的保存與裝載</p><p> 收藏夾模塊的功能可以將正在瀏覽的網(wǎng)址添加到收藏夾中,并且提供分類,通常的做法是將收藏夾的內(nèi)容存放在集合類中,
63、如果程序關(guān)閉,收藏夾的內(nèi)容和分類將丟失,因?yàn)樗鼈儧]有被持久化。</p><p> 將收藏夾持久化的方法有兩種:</p><p><b> 持久化到數(shù)據(jù)庫</b></p><p> 可以將收藏夾內(nèi)容全部保存到數(shù)據(jù)庫中,在程序關(guān)閉時(shí),收藏夾的內(nèi)容保存在數(shù)據(jù)庫而不在內(nèi)存中,這樣可以避免數(shù)據(jù)丟失,在程序下次啟動(dòng)的時(shí)候,可以從數(shù)據(jù)庫中讀取收藏夾內(nèi)容
64、從新顯示</p><p><b> 持久化到文件中</b></p><p> 另一種方法將收藏夾的內(nèi)容保存到一個(gè)數(shù)據(jù)文件中,例如”favorite.data”,這種方法保存收藏夾數(shù)據(jù)可以節(jié)省訪問數(shù)據(jù)庫的開銷,也可以隨瀏覽器模塊一同發(fā)布,既方便又節(jié)省資源。</p><p> 4.1.3阻止IE打開彈出窗口</p><p&
65、gt; 使用WebBrowser組件編寫的瀏覽器模塊,可以在本窗口中瀏覽各種信息,可以通過超級鏈接訪問其他網(wǎng)頁,如果某個(gè)超級連接要在新的窗體中打開網(wǎng)頁,那么這個(gè)網(wǎng)頁會(huì)默認(rèn)使用IE或操作系統(tǒng)默認(rèn)的瀏覽器打開,這就破壞了模塊的外觀,使本模塊處于可有可無的狀態(tài)。因此必須攔截這些需要在新窗體顯示的網(wǎng)頁信息,本模塊繼承了WebBrowser組件實(shí)現(xiàn)了瀏覽器組件的Browser類,它從寫了父類的willOpenWindow()方法,在有需要顯示在
66、新窗體的網(wǎng)頁信息時(shí),該方法會(huì)創(chuàng)建新的選項(xiàng)卡顯示這個(gè)網(wǎng)頁。</p><p><b> 4.2菜單欄的實(shí)現(xiàn)</b></p><p> 瀏覽器模塊的菜單欄幾乎容納了所有功能的操作連接,它用于整個(gè)瀏覽器模塊的導(dǎo)航,快速方便的執(zhí)行瀏覽操作,例如前進(jìn),后退,刷新等。</p><p> 4.2.1 文件菜單</p><p>
67、文件菜單包括”設(shè)置主頁”,”打印”,”退出”3個(gè)菜單項(xiàng),其中”設(shè)置主頁”將用戶輸入的網(wǎng)址信息創(chuàng)建為URL對象。如果創(chuàng)建URL對象時(shí)拋出異常,說明URL格式不標(biāo)準(zhǔn),將以對話框的形式提示用戶URL格式非法,當(dāng)輸入格式正確時(shí),程序?qū)RL對象序列化到收藏夾得數(shù)據(jù)文件中。</p><p> 單擊打印菜單時(shí),將調(diào)用工具欄上”打印”按鈕的doClick()方法,執(zhí)行按鈕的鼠標(biāo)單擊操作,程序會(huì)執(zhí)行按鈕的時(shí)間處理代碼。<
68、/p><p> 單擊菜單欄的“退出”菜單項(xiàng)時(shí),菜單項(xiàng)的事件監(jiān)聽器將調(diào)用業(yè)務(wù)方法完成退出命令。在業(yè)務(wù)方法中執(zhí)行了System類的exit()方法退出Java虛擬機(jī),從而終止程序運(yùn)行。</p><p> 4.2.2 轉(zhuǎn)到菜單</p><p> 轉(zhuǎn)到菜單包含了瀏覽器的控制命令,這些命令包括”主頁”,”前進(jìn)””后退””停止””刷新”。這些控制命令,在菜單欄中也提供了相應(yīng)的
69、操作按鈕,為減少代碼重復(fù),本模塊在這些菜單欄的事件處理中直接調(diào)用工具欄相應(yīng)按鈕的doClick()方法,執(zhí)行按鈕的業(yè)務(wù)代碼。</p><p> // 停止菜單項(xiàng)的業(yè)務(wù)</p><p> private void stopMenuItemActionPerformed(java.awt.event.ActionEvent evt) {</p><p> stop
70、Button.doClick(); // 執(zhí)行停止按鈕的單擊方法</p><p><b> }</b></p><p> // 刷新菜單項(xiàng)的業(yè)務(wù)方法</p><p> private void refreshMenuItemActionPerformed(java.awt.event.ActionEvent evt) {</p>
71、;<p> refreshButton.doClick(); // 執(zhí)行刷新按鈕的單擊方法</p><p><b> }</b></p><p> // 后退菜單項(xiàng)的業(yè)務(wù)方法</p><p> private void backMenuItemActionPerformed(java.awt.event.ActionEve
72、nt evt) {</p><p> backButton.doClick(); // 執(zhí)行后退按鈕的單擊方法</p><p><b> }</b></p><p> // 前進(jìn)菜單項(xiàng)的業(yè)務(wù)方法</p><p> private void forwardMenuItemActionPerformed(java.a
73、wt.event.ActionEvent evt) {</p><p> forwardButton.doClick(); // 執(zhí)行前進(jìn)按鈕的單擊方法</p><p><b> }</b></p><p> // 打印菜單項(xiàng)的業(yè)務(wù)方法</p><p> private void printMenuItemAct
74、ionPerformed(java.awt.event.ActionEvent evt) {</p><p> printButton.doClick(); // 執(zhí)行主頁按鈕的單擊方法</p><p><b> }</b></p><p> 4.2.3 調(diào)整菜單</p><p> 本模塊的網(wǎng)頁瀏覽器部分布置在一
75、個(gè)選項(xiàng)卡組件中,選項(xiàng)卡的標(biāo)簽名稱為網(wǎng)頁的標(biāo)題命名,這樣用戶可以創(chuàng)建多個(gè)選項(xiàng)卡瀏覽更多的網(wǎng)站。</p><p> 4.3 工具欄的實(shí)現(xiàn)</p><p> 工具欄用于執(zhí)行常用的操作,網(wǎng)頁瀏覽器模塊的控制命令使用最頻繁,因此將瀏覽器的控制命令提取到工具欄中。工具欄上的每個(gè)按鈕都設(shè)置了文本提示,每個(gè)按鈕都添加了單獨(dú)的事件監(jiān)聽器,在不同的事件監(jiān)聽器中調(diào)用處理該按鈕業(yè)務(wù)的方法。</p>
76、<p> 編寫各個(gè)按鈕的事物處理方法,這些業(yè)務(wù)處理方法被不同按鈕的事件監(jiān)聽器調(diào)用。瀏覽器的控制按鈕的業(yè)務(wù)邏輯,基本通過調(diào)用Browser瀏覽器組件的方法實(shí)現(xiàn),例如print()方法可以執(zhí)行打印任務(wù), </p><p> // 后退按鈕的事件處理方法</p><p> private void backButtonActionPerformed(java.awt.even
77、t.ActionEvent evt) {</p><p> Browser browser = getSelBrowser();</p><p> if (browser.isBackEnabled()) { // 如果后退操作可行</p><p> browser.back(); // 執(zhí)行后退</p><p><b>
78、}</b></p><p><b> }</b></p><p> // 停止按鈕的事件處理方法</p><p> private void stopButtonActionPerformed(java.awt.event.ActionEvent evt) {</p><p> Browser bro
79、wser = getSelBrowser();</p><p> browser.stop(); // 執(zhí)行停止操作</p><p><b> }</b></p><p> // 前進(jìn)按鈕的事件處理方法</p><p> private void forwardButtonActionPerformed(java
80、.awt.event.ActionEvent evt) {</p><p> Browser browser = getSelBrowser();</p><p> if (browser.isForwardEnabled()) { // 如果前進(jìn)操作可行</p><p> browser.forward(); // 執(zhí)行前進(jìn)操作</p><
81、;p><b> }</b></p><p><b> }</b></p><p> // 刷新按鈕的事件處理方法</p><p> private void refreshButtonActionPerformed(java.awt.event.ActionEvent evt) {</p>&l
82、t;p> Browser browser = getSelBrowser();</p><p> browser.refresh(); // 執(zhí)行刷新操作</p><p><b> }</b></p><p> // 主頁按鈕的事件處理方法</p><p> private void homePageBu
83、ttonActionPerformed(java.awt.event.ActionEvent evt) {</p><p> Browser browser = getSelBrowser();</p><p> browser.setURL(homePage); // 設(shè)置瀏覽器當(dāng)前網(wǎng)址</p><p><b> }</b></p
84、><p> 4.4 地址欄的實(shí)現(xiàn)</p><p> 地址欄是網(wǎng)頁瀏覽器的重要功能,它接收用戶輸入的將要訪問的網(wǎng)站地址,然后將該地址傳送給瀏覽器組件,呈現(xiàn)指定的網(wǎng)頁內(nèi)容。網(wǎng)頁瀏覽器模塊的地址欄包含輸入網(wǎng)站URL地址的文本框和一個(gè)執(zhí)行瀏覽業(yè)務(wù)的“轉(zhuǎn)到”按鈕。當(dāng)用戶在地址欄的地址文本框輸入網(wǎng)站地址并單擊右側(cè)的“轉(zhuǎn)到”按鈕時(shí),它下面的瀏覽器選項(xiàng)卡將創(chuàng)建一個(gè)新的選項(xiàng)卡,并在選項(xiàng)卡中放置一個(gè)瀏覽器組件
85、顯示新的網(wǎng)頁內(nèi)容。</p><p> jLabel1.setText("地址:");// 地址標(biāo)簽</p><p> addressBar.add(jLabel1, BorderLayout.WEST);// 添加標(biāo)簽到地址欄</p><p> address.setText("http://");
86、// 設(shè)置地址文本框內(nèi)容</p><p> addressBar.add(address, BorderLayout.CENTER);// 添加地址文本框到地址欄</p><p> goButton.setText("轉(zhuǎn)到");// 設(shè)置轉(zhuǎn)到按的文本</p><p> goButton.setFocusable
87、(false);</p><p> goButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);</p><p> goButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);</p><p> // 添加
88、轉(zhuǎn)到按鈕的事件監(jiān)聽器,當(dāng)單擊轉(zhuǎn)到按鈕時(shí),執(zhí)行業(yè)務(wù)方法</p><p> goButton.addActionListener(new java.awt.event.ActionListener() {</p><p> public void actionPerformed(java.awt.event.ActionEvent evt) {</p><p>
89、goButtonActionPerformed(evt);// 調(diào)用轉(zhuǎn)到按鈕的業(yè)務(wù)方法</p><p><b> }</b></p><p><b> });</b></p><p> addressBar.add(goButton, BorderLayout.EAST);// 添加轉(zhuǎn)到按鈕到地址欄<
90、;/p><p> 4.5 瀏覽器選項(xiàng)卡的實(shí)現(xiàn)</p><p> 以前的瀏覽器都是單個(gè)窗體的軟件,在每次需要同時(shí)瀏覽不同的網(wǎng)站或者在新窗口顯示網(wǎng)頁的情況下,都需要重新啟動(dòng)或彈出一個(gè)瀏覽器軟件來顯示指定的網(wǎng)頁內(nèi)容。因此本模塊使用瀏覽器面板作為所有瀏覽器組件的容器:</p><p> 4.5.1 繼承擴(kuò)展瀏覽器組件</p><p> 由于網(wǎng)頁的
91、超級鏈接或JavaScript腳本可以在新的瀏覽器窗口中顯示內(nèi)容,而新建立的瀏覽器窗體會(huì)使用默認(rèn)的瀏覽器打開網(wǎng)頁,因此本模塊必須繼承WebBrowser類來編寫自己的瀏覽器組件類Browser。</p><p> 這樣就可以重寫父類的willOpenWindow()方法攔截彈出新窗體顯示網(wǎng)頁內(nèi)容的事件,然后再該方法中使用自己的事件,在選項(xiàng)卡面板中創(chuàng)建瀏覽器組件顯示網(wǎng)頁。</p><p>
92、 4.5.2 編寫瀏覽器面板</p><p> 將擴(kuò)展的Browser瀏覽器組件封裝在一個(gè)面板中實(shí)現(xiàn)瀏覽器面板,這個(gè)面板將被添加到存放瀏覽器的選項(xiàng)卡面板中.瀏覽器面板添加了Browser瀏覽器組件的實(shí)例對象,并且為瀏覽器組件添加了事件監(jiān)聽器。 </p><p> 4.5.3 編寫瀏覽器選項(xiàng)卡面板</p><p> 本模塊的選項(xiàng)卡面板用于存放瀏覽器組件,使瀏覽
93、器支持選項(xiàng)卡界面創(chuàng)建選項(xiàng)卡時(shí)為面板添加鼠標(biāo)單擊事件,在用戶單擊選項(xiàng)卡的標(biāo)簽時(shí)執(zhí)行業(yè)務(wù)方法。另外,還設(shè)置了選項(xiàng)卡面板的模型對象,包括選項(xiàng)卡的選擇事件的處理方法。CreateBrowser()和getSelBrowser()方法分別用于在選項(xiàng)卡面板創(chuàng)建瀏覽器面板和獲取當(dāng)前選擇的面板中的瀏覽器組件實(shí)例。</p><p> 本模塊使用JDIC類庫來實(shí)現(xiàn)瀏覽器界面,該類庫可以從http://jdic.dev.java.n
94、et/地址下載,在IE地址欄輸入該網(wǎng)址后,瀏覽器將顯示JDIC的項(xiàng)目首頁。下載該類庫后是一個(gè)壓縮文件,將該文件解壓縮并將類庫的JAR文件和EXE文件添加到Java程序的類路勁中,DLL文件需要放到運(yùn)行java程序的當(dāng)前路徑,如果是Eclipse的項(xiàng)目中使用該類庫,那么DLL文件需要放到項(xiàng)目的根文件夾中,與src同級。</p><p> 4.5.4編寫瀏覽器組件監(jiān)聽器</p><p>
95、在編寫瀏覽器面板組件時(shí),在面板中創(chuàng)建了瀏覽器組件,同時(shí)也為該組件添加了事件監(jiān)聽器。</p><p> 4.6 收藏夾的實(shí)現(xiàn)</p><p> 收藏夾是瀏覽器不可缺少的功能,它記錄上網(wǎng)時(shí)常用的,經(jīng)典的網(wǎng)站地址。</p><p> 4.6.1 添加到收藏夾</p><p> 在瀏覽器模塊的主窗體上單擊”收藏夾”/”添加到收藏夾”菜單項(xiàng),將
96、啟動(dòng)添加收藏夾功能,該功能能將當(dāng)前瀏覽器訪問的網(wǎng)站地址添加到收藏夾中,日后可以從收藏夾中直接選擇瀏覽器指定的網(wǎng)址。</p><p> 添加收藏夾功能的實(shí)現(xiàn)步驟如下:</p><p> 1 編寫”添加到收藏夾”菜單項(xiàng)的業(yè)務(wù)代碼,這個(gè)方法將有菜單項(xiàng)的事件監(jiān)聽調(diào)用,方法內(nèi)部獲取了選項(xiàng)卡面板當(dāng)前的選項(xiàng)卡索引,然后使用所有獲取選項(xiàng)卡的標(biāo)題,使用該標(biāo)題創(chuàng)建了”添加到收藏夾”對話框的實(shí)例,把其余的工
97、作交由該對話框?qū)崿F(xiàn)。</p><p> 2在”添加到收藏夾”對話框中編寫初始化收藏夾樹組件的方法,該方法將在對話框的構(gòu)造方法中被調(diào)用,它將調(diào)用loadMenu()方法添加收藏夾菜單的內(nèi)容。</p><p> 3編寫裝載收藏夾菜單內(nèi)容的loadMenu()方法,該方法使用遞歸算法遍歷收藏夾的數(shù)據(jù)集合對象,從這個(gè)集合對象中裝載收藏夾的所有內(nèi)容到”收藏夾”菜單中。</p>&l
98、t;p> 4 編寫”確定”按鈕的業(yè)務(wù)處理方法,該方法在用戶輸入名稱標(biāo)識并單擊按鈕時(shí)被”確定”按鈕的事件監(jiān)聽器調(diào)用,它將完成從讀取用戶輸入名稱標(biāo)識到保存網(wǎng)站地址到收藏夾的全過程。</p><p> 4.6.2 整理收藏夾</p><p> 整理收藏夾的實(shí)現(xiàn)比較復(fù)雜,它的樹組件要顯示的收藏夾內(nèi)容包括文件夾和收藏的網(wǎng)址信息,而且可以對這些信息進(jìn)行維護(hù)和移動(dòng)操作。其中包括”創(chuàng)建文件夾”
99、,”重命名”,”刪除”操作。</p><p><b> 實(shí)現(xiàn)過程如下:</b></p><p> 1 編寫”整理收藏夾”菜單項(xiàng)的業(yè)務(wù)處理方法,該方法將在單擊該菜單時(shí)由菜單項(xiàng)的時(shí)間監(jiān)聽器調(diào)用,方法的實(shí)現(xiàn)非常簡單,因?yàn)樗袠I(yè)務(wù)都由”整理收藏夾”對話框完成。</p><p> 2 編寫”整理收藏夾”對話框的構(gòu)造方法,在構(gòu)造方法中分別調(diào)用初始化對
100、話框界面的方法和初始化收藏夾樹組件的方法。</p><p> 3編寫初始化樹組件的方法,該方法將調(diào)用loadFavoriteNode()方法裝載樹節(jié)點(diǎn)內(nèi)容,</p><p> 4 編寫裝載樹組件節(jié)點(diǎn)內(nèi)容的方法,該方法使用了遞歸方法,原因是要遍歷的內(nèi)容包括子節(jié)點(diǎn)的嵌套。</p><p> 6 編寫”重命名”按鈕的事件處理方法,作為維護(hù)操作重命名是必不可少的,特別
101、是收藏夾中的文件夾。如果沒有重命名,則需要?jiǎng)h除文件,重新建立;如果文件夾中包含大量的收藏信息,會(huì)損失很多資源。單擊”重命名”按鈕時(shí),將在事件監(jiān)聽器中調(diào)用該方法完成命名操作。</p><p> 7 編寫”刪除”按鈕的事件處理方法,該方法將在”刪除”按鈕的事件監(jiān)聽器中被調(diào)用。</p><p> 8 編寫”移動(dòng)到”按鈕的事件處理方法,該方法用于移動(dòng)收藏選項(xiàng)到其他文件夾中,其按鈕的事件監(jiān)聽器將
102、調(diào)用該方法。 </p><p><b> 第五章 測試</b></p><p> 5.1 測試與調(diào)試的基本概念</p><p> 軟件測試是整個(gè)系統(tǒng)開發(fā)過程中一個(gè)重要環(huán)節(jié),是成功開發(fā)本系統(tǒng)的重要保證。軟件測試階段的主要任務(wù)是發(fā)現(xiàn)并排除在分析、設(shè)計(jì)、編碼各階段中產(chǎn)生的各種類型的錯(cuò)誤,以得到可使用的軟件系統(tǒng)。</p><p
103、> 常用的軟件測試方法有兩大類:靜態(tài)測試方法和動(dòng)態(tài)測試方法。</p><p> 靜態(tài)測試方法是程序遠(yuǎn)普遍采用的一種方法,其內(nèi)容主要是通過人工模擬軟件系統(tǒng)的執(zhí)行方式,以代碼會(huì)審、走查、辦公室檢查的形式分析或核查系統(tǒng)的功能實(shí)現(xiàn)、編碼過程的正確性。動(dòng)態(tài)測試方法是通過輸入一組預(yù)先按照一定的測試準(zhǔn)則構(gòu)造的實(shí)例數(shù)據(jù)來動(dòng)態(tài)運(yùn)行程序,而達(dá)到發(fā)現(xiàn)程序錯(cuò)誤的過程。</p><p> 按照通常的軟件
104、系統(tǒng)測試,可以分別進(jìn)行單元測試、集成測試、確認(rèn)測試、系統(tǒng)測試,最后進(jìn)行驗(yàn)收測試,即由用戶通過試用系統(tǒng)而進(jìn)行測試,檢驗(yàn)系統(tǒng)的可用性及與用戶配合的程度。</p><p> 調(diào)試是軟件開發(fā)過程中最艱巨的腦力勞動(dòng),調(diào)試開始時(shí),軟件開發(fā)者僅僅面對著錯(cuò)誤的征兆,然而在問題的外部現(xiàn)象和內(nèi)在原因之間往往并沒有明顯的聯(lián)系,在組成程序的密密麻麻的元素中,每一個(gè)都可能是錯(cuò)誤的根源。如何能在浩如煙海的程序元素中找到有錯(cuò)誤的那個(gè)(或幾個(gè)
105、)元素,這是調(diào)試過程中最關(guān)鍵的技術(shù)問題。本設(shè)計(jì)中調(diào)試的方法主要是設(shè)置斷點(diǎn)跟蹤。使用斷點(diǎn)跟蹤可以找到程序的出錯(cuò)位置,縮小查找錯(cuò)誤的范圍,提高調(diào)試的效率。調(diào)試的任務(wù)是及時(shí)改正測試過程中發(fā)現(xiàn)的軟件錯(cuò)誤。具體地說,調(diào)試過程由兩個(gè)步驟組成,它從表示程序中存在錯(cuò)誤的某跡象開始,首先確定錯(cuò)誤的準(zhǔn)確位置,也就是找出哪個(gè)模塊或哪個(gè)語句引起的錯(cuò)誤。然后仔細(xì)研究推斷代碼以確定問題的原因,并設(shè)法改正?,F(xiàn)階段己研究出一些幫助調(diào)試的技術(shù),主要有輸出存儲(chǔ)器內(nèi)容、打印
106、語句和自動(dòng)工具。</p><p><b> 5.2 測試時(shí)間</b></p><p> 本系統(tǒng)的測試分為以下幾個(gè)階段進(jìn)行:</p><p> 第一階段: 根據(jù)需求分析劃定軟件中要測試的功能和性能的范圍,確定測試的內(nèi)容。</p><p> 第二階段: 分模塊對系統(tǒng)中的各模塊進(jìn)行測試,對需求分析中各模塊的功能和性能及
107、用戶的特殊需求進(jìn)行測試,記下各模塊的所有的問題,及時(shí)解決。</p><p> 第三階段: 在模塊測試的基礎(chǔ)上將各模塊拼接進(jìn)行整體功能和性能的測試。</p><p> 第四階段: 綜合測試。</p><p><b> 圖3 程序運(yùn)行示例</b></p><p> 5.3 軟件測試的內(nèi)容</p><
108、;p> 分模塊對其進(jìn)行測試:</p><p> 1菜單欄模塊:能通過菜單欄的操作實(shí)現(xiàn)網(wǎng)頁的前進(jìn),后退,停止,刷新和轉(zhuǎn)到功能,收藏夾的新建與整理。</p><p> 2工具欄模塊:能通過點(diǎn)擊工具圖標(biāo)來實(shí)現(xiàn)一些常用的操作。</p><p> 3地址欄模塊:用來接收用戶輸入的網(wǎng)站地址,然后將該地址傳給瀏覽器組件,呈現(xiàn)指定的網(wǎng)頁。</p><
109、;p> 4瀏覽器選項(xiàng)卡模塊:實(shí)現(xiàn)在同一個(gè)窗體中顯示多個(gè)頁面。</p><p> 5收藏夾模塊:能對收藏夾進(jìn)行添加網(wǎng)頁和整理操作。</p><p><b> 結(jié)論</b></p><p> 通過本次論文——網(wǎng)頁瀏覽器的實(shí)現(xiàn),使得我對現(xiàn)今瀏覽器的發(fā)展背景及現(xiàn)狀有了更全面深入的認(rèn)識,從第一款瀏覽器Mosaic的發(fā)布到現(xiàn)在IE,F(xiàn)iref
110、ox,遨游,世界之窗的普及,都給予了我們生活和學(xué)習(xí)的方式的另一種詮釋。它的出現(xiàn)使得我們生活變得簡單,共享和隨性,而我們的學(xué)習(xí)和 工作也不再受到時(shí)間和地域的限制。</p><p> 可以說,在剛開始的前期資料查詢和總體功能的設(shè)計(jì)分析階段,難題和困難就一直伴隨而來,一開始是腦海中沒有模塊的基本雛形。然后才去查詢關(guān)于網(wǎng)頁瀏覽器的資料和書籍,通過《windows 程序設(shè)計(jì)》和《Thinking in Java》兩本書的
111、學(xué)習(xí)和借鑒,然后才慢慢的有了模塊的基礎(chǔ)功能和模型,再往后就是模塊 功能的結(jié)構(gòu)分析以及關(guān)鍵技術(shù)的整理,關(guān)于模塊的功能,本來是想呈現(xiàn)IE風(fēng)格的瀏覽器界面,但在隨后的程序整理階段,發(fā)現(xiàn)每打開一個(gè)網(wǎng)頁,就彈出一個(gè)IE窗口,使得桌面有點(diǎn)繁雜,便想到了實(shí)現(xiàn)類似與遨游的一個(gè)窗口實(shí)現(xiàn)多個(gè)網(wǎng)頁的呈現(xiàn)。這其中便有了瀏覽器選項(xiàng)卡的開發(fā)與實(shí)現(xiàn),通過《Java組件設(shè)計(jì)》的學(xué)習(xí),了解到關(guān)于JDIC項(xiàng)目關(guān)于瀏覽器選項(xiàng)卡的實(shí)現(xiàn),通過下載JDIC類庫,實(shí)現(xiàn)了瀏覽器選項(xiàng)卡
112、,從而達(dá)成了一個(gè)窗口顯示多個(gè)網(wǎng)頁的目的。在隨后的編程過程中,又有了收藏夾的難題。在最初的實(shí)現(xiàn)中,每次當(dāng)關(guān)閉窗口時(shí),保存在收藏夾中的網(wǎng)友與分類也隨之消失,下次再打開時(shí)上次保存的內(nèi)容已不復(fù)存在,這就沒有實(shí)現(xiàn)收藏夾的基本功能。后面才知道是收藏夾沒有被持久化,于是查詢相關(guān)資料得出將收藏夾持久化的方法,最好的方法是將收藏夾集合序列化到</p><p><b> 致謝</b></p>&
113、lt;p> 首先,我要感謝我的父母,在本次畢業(yè)設(shè)計(jì)中,他們的精神鼓勵(lì)也是我能順利完成畢業(yè)設(shè)計(jì)的重要因素。當(dāng)我取得突破時(shí),他們?yōu)槲腋吲d,支持我繼續(xù)做的更好,當(dāng)我遇到難題時(shí),他們和我一起分擔(dān),鼓勵(lì)我不要放棄。人人都說父母的愛是無私的,我有了深刻的體會(huì)。</p><p> 其次,我要感謝我的指導(dǎo)老師33師,在本次的畢業(yè)設(shè)計(jì)過程中,無論是課題的選題,還是中間過程的復(fù)雜難題的解決,或是論文的制作,他都給予了我極大
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于java網(wǎng)絡(luò)瀏覽器的開發(fā)與實(shí)現(xiàn)
- 網(wǎng)絡(luò)瀏覽器的應(yīng)用
- 基于eyeOS的網(wǎng)絡(luò)瀏覽器的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 可信網(wǎng)絡(luò)瀏覽器的研究與開發(fā).pdf
- java瀏覽器課程設(shè)計(jì)--web瀏覽器開發(fā)
- 常用網(wǎng)絡(luò)瀏覽器的個(gè)獨(dú)特功能
- 一種新型中文網(wǎng)絡(luò)瀏覽器的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于java的瀏覽器的設(shè)計(jì)
- 數(shù)字電視機(jī)頂盒網(wǎng)絡(luò)瀏覽器的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于JAVA的瀏覽器的設(shè)計(jì).doc
- 基于android平臺(tái)的uc瀏覽器開發(fā)與實(shí)現(xiàn)
- 數(shù)字電視機(jī)頂盒網(wǎng)絡(luò)瀏覽器模擬器的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于Java的IP機(jī)頂盒瀏覽器研究與實(shí)現(xiàn).pdf
- 基于瀏覽器服務(wù)的網(wǎng)絡(luò)爬蟲的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 58971.基于svg的網(wǎng)絡(luò)地圖瀏覽器的設(shè)計(jì)與實(shí)現(xiàn)
- 基于嵌入式瀏覽器的Java支持.pdf
- DVD刻錄及網(wǎng)絡(luò)瀏覽器在數(shù)字電視機(jī)頂盒上的實(shí)現(xiàn).pdf
- 網(wǎng)頁瀏覽器--java課程設(shè)計(jì)
- 網(wǎng)頁瀏覽器--java課程設(shè)計(jì)
- 基于Android的文件瀏覽器設(shè)計(jì)與實(shí)現(xiàn).pdf
評論
0/150
提交評論