

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