




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于java的瀏覽器的設(shè)計(jì)與實(shí)現(xiàn)——GUI界面子系統(tǒng)摘要21世紀(jì)人們對(duì)互聯(lián)網(wǎng)的依賴(lài)越來(lái)越大,而網(wǎng)頁(yè)瀏覽器作為上網(wǎng)瀏覽信息所必需的軟件之一,已經(jīng)得到了廣泛地應(yīng)用。在IE占據(jù)了大部分瀏覽器市場(chǎng)的情況下,國(guó)內(nèi)外開(kāi)發(fā)商依然沒(méi)有放棄這個(gè)巨大的市場(chǎng),各式各樣的瀏覽器被開(kāi)發(fā)出來(lái)?yè)屨际袌?chǎng)。網(wǎng)頁(yè)瀏覽器的開(kāi)發(fā)與應(yīng)用已成為了計(jì)算機(jī)領(lǐng)域近年來(lái)的一大熱點(diǎn)。本文用軟件工程的開(kāi)發(fā)過(guò)程,詳細(xì)論述了瀏覽器的分析、設(shè)計(jì)及代碼實(shí)現(xiàn),最終實(shí)現(xiàn)一個(gè)具有能同時(shí)瀏覽多個(gè)網(wǎng)頁(yè),可查看收藏夾,可以實(shí)現(xiàn)打開(kāi)網(wǎng)頁(yè),超鏈接監(jiān)聽(tīng)并響應(yīng),前進(jìn)和后退等基本功能的瀏覽器。本文以一個(gè)實(shí)際運(yùn)作的瀏覽器Browser為主軸介紹瀏覽器的設(shè)計(jì)理念與方法,同時(shí)講述瀏覽器中各個(gè)模塊如何互相協(xié)同運(yùn)作,來(lái)完成一個(gè)呈現(xiàn)網(wǎng)頁(yè)的工作。通過(guò)下載JDIC類(lèi)庫(kù),實(shí)現(xiàn)了瀏覽器選項(xiàng)卡,從而達(dá)成了一個(gè)窗口顯示多個(gè)網(wǎng)頁(yè)的目的。收藏夾的實(shí)現(xiàn)是將收藏夾集合序列化到數(shù)據(jù)文件中,這樣收藏夾被持久化解決了收藏夾的問(wèn)題。另外,JavaSwing技術(shù)也是本文介紹的瀏覽器所使用的一種主要的技術(shù),通過(guò)使用各個(gè)組件,并增加監(jiān)聽(tīng)器和事件處理等操作,最終形成一個(gè)具有一定事物處理能力的瀏覽器的界面部分。關(guān)鍵詞:瀏覽器,JDIC類(lèi)庫(kù),JavaSwing,事件BasedonthedesignandimplementationofaJavabrowserAbstractInthe21stcentury,peoplerelyontheInternetismoreandmorebig,thewebbrowserasoneofthenecessarysoftware,surfingtheInternetinformationhasbeenwidelyused.InthecaseofoccupyingmostoftheIEbrowsermarket,developersstilldidn'tgiveupthehugemarketathomeandabroad,developedavarietyofbrowserispreemptedmarket.Thedevelopmentandapplicationofwebbrowserhasbecomeafocusinthecomputerfieldinrecentyears.Inthedevelopmentprocessofsoftwareengineering,thispaperdetaileddiscussestheanalysis,designandcodeimplementationofthebrowser,andultimatelyachieveahavetobrowsemultiplewebpagesatthesametime,toviewthefavorites,canrealizeopenawebpage,hyperlinkstomonitorandrespondto,thebasicfunctionsuchasforwardandbackwardinthebrowser.BasedonanactualoperationoftheBrowserBrowserBrowserdesignconceptandmethodofintroductionformainshaft,variousmodulestellstheBrowserhowtoworktogetherwitheachotheratthesametime,tofinishtheworkofarenderedpage.BydownloadingtheJDICclasslibrary,therealizationofthebrowserTAB,whichreachedthepurposeofawindowtodisplaymultiplewebpages.Therealizationofthefavoritesarefavoritescollectionserializedintoadatafile,thiscollectiondoublecoverletpersistentsolvedtheproblemofthefavorites.Inaddition,theJavaSwingtechnologyisalsointroducedinthispaperbythebrowserusingakindofmaintechnology,throughtheuseoftheindividualcomponents,andaddinglistenersandeventhandlingoperationssuchas,eventuallyformingacertainthingsbrowserinterfacepartofprocessingcapacity.Keywords:Thebrowser,TheJDICclasslibrary,JavaSwing,Theevent第第Ⅰ頁(yè)共Ⅱ頁(yè)目錄TOC\o"1-1"\t"標(biāo)題2,1,標(biāo)題3,1"\h\u165561引言 頁(yè)共26頁(yè)1引言1.1研究課題的目的和意義當(dāng)前,信息化浪潮正在全球范圍內(nèi)興起,一個(gè)以計(jì)算機(jī)網(wǎng)絡(luò)為核心的信息時(shí)代正向我們走來(lái)。在Internet飛速發(fā)展的今天,互聯(lián)網(wǎng)成為人們快速獲取、發(fā)布和傳遞信息的重要渠道,從而倍受人們的重視,而互聯(lián)網(wǎng)上信息的查找又要通過(guò)瀏覽器的瀏覽來(lái)實(shí)現(xiàn),所以本文通過(guò)對(duì)當(dāng)下流行的瀏覽器的模擬設(shè)計(jì)和實(shí)現(xiàn)來(lái)讓大家對(duì)網(wǎng)絡(luò)及網(wǎng)絡(luò)資源的認(rèn)識(shí),以及瀏覽器的各個(gè)功能的實(shí)現(xiàn)有一個(gè)大概的認(rèn)識(shí)[1]。瀏覽器是一個(gè)基于C/S架構(gòu)的應(yīng)用軟件,其最基本的功能,就是能夠?qū)⒁蛱鼐W(wǎng)上的眾多資源,例如網(wǎng)頁(yè)上的內(nèi)容與信息或是在線服務(wù)等,呈現(xiàn)給使用者并讓使用者得以使用存在于因特網(wǎng)上的各項(xiàng)服務(wù)。因此透過(guò)網(wǎng)絡(luò)傳輸數(shù)據(jù)對(duì)瀏覽器來(lái)說(shuō),是相當(dāng)重要且必備的一項(xiàng)能力。瀏覽器作為重要的系統(tǒng)應(yīng)用軟件是不可或缺的。但目前,瀏覽器產(chǎn)品的市場(chǎng)被少數(shù)國(guó)外大公司壟斷,眾多的小型瀏覽器也尚處于發(fā)展期,而國(guó)內(nèi)的自主技術(shù)的瀏覽器更屈指可數(shù),剛剛進(jìn)入實(shí)用階段。迫切需要更多的人來(lái)關(guān)注瀏覽器技術(shù),開(kāi)發(fā)中國(guó)自主知識(shí)產(chǎn)權(quán)的瀏覽器產(chǎn)品。1.2國(guó)內(nèi)外研究現(xiàn)狀及發(fā)展趨勢(shì)常見(jiàn)的桌面瀏覽器有微軟的InternetExplorer,網(wǎng)景的Netscape,開(kāi)放源碼的MozillaFireFox,以及opera,mosaic,Hotjava,字符模式的lynx等。其中IE,Opera已有嵌入式版本,以上的大多數(shù)瀏覽器均有跨多平臺(tái)的版本。這些桌面型瀏覽器功能參差不齊,但大多都能實(shí)現(xiàn)基本的瀏覽功能。其中IE與Netscape對(duì)HTML頁(yè)面的顯示效果均堪稱(chēng)完美。與完美的瀏覽效果,功能豐富,支持多種媒體格式和視音頻插件等優(yōu)點(diǎn)形成對(duì)立的是,這些瀏覽器龐大的體積和對(duì)機(jī)器配置的高要求;這也是桌面瀏覽器和嵌入式瀏覽器最大的區(qū)別。另外,桌面型瀏覽器通常是基于通用的操作系統(tǒng),用于桌面電腦如PC機(jī)、MAC機(jī)等;而嵌入式瀏覽器通?;趯?zhuān)用系統(tǒng)。需要指出的是,在網(wǎng)上??吹降囊恍g覽器,如Netcaptor,魔裝網(wǎng)神,騰訊,颶風(fēng),F(xiàn)antasia,金山WPSoffice的瀏覽器等等,均為使用IE內(nèi)核的瀏覽器,使用了多頁(yè)面多線程的方式,降低了系統(tǒng)資源的耗費(fèi),方便了瀏覽,但軟件本身沒(méi)有使用多少技術(shù),可以用Delphi,VB等工具輕易開(kāi)發(fā)出來(lái)(如果不要求完善的功能,只需簡(jiǎn)單到拖一個(gè)IE控件過(guò)去就行了),這也體現(xiàn)了微軟的COM+及ActiveX技術(shù)的強(qiáng)大。1.3本課題實(shí)現(xiàn)的目標(biāo)本項(xiàng)目是網(wǎng)頁(yè)瀏覽器,包括五個(gè)部分,菜單欄模塊,工具欄模塊,地址欄模塊,瀏覽器選項(xiàng)卡模塊以及收藏夾模塊。1.菜單欄模塊內(nèi)容包括文件菜單,轉(zhuǎn)到菜單,調(diào)整菜單和收藏夾菜單。主要是通過(guò)菜單欄的操作實(shí)現(xiàn)網(wǎng)頁(yè)的前進(jìn),后退,停止,刷新和轉(zhuǎn)到功能,還包括收藏夾的新建與整理。2.工具欄的功能則是實(shí)現(xiàn)常用的操作,通過(guò)點(diǎn)擊工具圖標(biāo)來(lái)實(shí)現(xiàn)菜單欄中所有的操作。3.地址欄模塊則用來(lái)接收用戶輸入的網(wǎng)站地址,然后將該地址傳給瀏覽器組件,呈現(xiàn)指定的網(wǎng)頁(yè)。4.瀏覽器選項(xiàng)卡模塊實(shí)現(xiàn)在同一個(gè)窗體中顯示多個(gè)頁(yè)面。5.收藏夾模塊是本設(shè)計(jì)中最重要的一部分,包括整理收藏夾菜單和添加收藏夾菜單,可在程序運(yùn)行的過(guò)程中根據(jù)用戶保存的內(nèi)容,填充收藏夾的內(nèi)容,且在網(wǎng)頁(yè)瀏覽器重新啟動(dòng)的情況下依舊保留有上次保存的網(wǎng)頁(yè)。2程序開(kāi)發(fā)的基礎(chǔ)2.1Java技術(shù)2.1.1Java概述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)[2]。Java平臺(tái)是一種純軟件平臺(tái),它有三個(gè)版本JavaSE、JavaEE、JavaME。JavaSE允許開(kāi)發(fā)和部署在桌面、服務(wù)器、嵌入式環(huán)境和實(shí)時(shí)環(huán)境中使用的Java應(yīng)用程序。JavaSE還包含了支持JavaWeb服務(wù)開(kāi)發(fā)的類(lèi),并為JavaEE這個(gè)版本提供基礎(chǔ)。JavaEE下有很多流行的開(kāi)發(fā)框架,像Struts、Spring、Hibernate這種流行的所謂SSH組合等。JavaME應(yīng)用領(lǐng)域像各種移動(dòng)設(shè)備和嵌入式設(shè)備,比如:手機(jī)、PDA、電視機(jī)頂盒和打印機(jī)。2.1.2Java平臺(tái)簡(jiǎn)介Java平臺(tái)版本Java平臺(tái)版本主要有:J2EE(企業(yè)版本)、J2SE(標(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的編程[3]。Java平臺(tái)的組成Java平臺(tái)主要是由一個(gè)compiler(編譯器),一個(gè)運(yùn)行環(huán)境(runtimeenvironment),和一個(gè)核心的API組成。1.JVM(Java虛擬機(jī)):Java程序并不是直接在本地機(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à)是可接受的[4]。2.JDK(JavaDevelopmentKit):Java平臺(tái)開(kāi)發(fā)包;JSDK(Java2SoftwareDevelopmentKit):Java2平臺(tái)開(kāi)發(fā)包。目前普遍采用J2SDK。3.JRE(JavaRuntimeEnvironment):Java運(yùn)行環(huán)境,一般情況下已集成到J2SDK中,但如果用戶只是執(zhí)行Java程序,而不進(jìn)行Java代碼的開(kāi)發(fā),則只需安裝JRE。Java環(huán)境變量的設(shè)置安裝完J2SDK之后,需要設(shè)置環(huán)境變量,方法如下:控制面板-〉高級(jí)設(shè)置-〉環(huán)境變量-〉系統(tǒng)變量-〉path里添加一個(gè)路徑。這個(gè)路徑是安裝J2SDK的bin文件夾的路徑。2.1.3JDIC項(xiàng)目簡(jiǎn)介JDesktopIntegrationComponents,或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)境集成[5]。為了能從開(kāi)發(fā)人員那里得到想要的特性的快速反饋,他們將JDIC做成了開(kāi)源項(xiàng)目。盡管目前沒(méi)有計(jì)劃,但JDIC團(tuán)隊(duì)正考慮把JDIC的特征加入Java核心類(lèi)庫(kù)的未來(lái)版本中去。JDIC分為五個(gè)部分和一個(gè)孵化中的項(xiàng)目:桌面:為了打開(kāi)、編輯和用email郵寄文件來(lái)打開(kāi)桌面程序;文件類(lèi)型:設(shè)置桌面文件類(lèi)型關(guān)聯(lián);瀏覽器:在AWT畫(huà)布上嵌入本地瀏覽器(InternetExplorer或者M(jìn)ozilla);包裝器:把JavaWebStart程序轉(zhuǎn)換成本地安裝程序的命令行工具;托盤(pán)API:支持系統(tǒng)托盤(pán)圖標(biāo)和彈出式菜單;SaverBeans:Java中的系統(tǒng)屏幕保護(hù)。2.2GUI技術(shù)簡(jiǎn)介2.2.1GUI的概述GUI(GraphicsUserInterface)是指圖形用戶接口,當(dāng)Java在1995年的春天第一次發(fā)布的時(shí)候,它包含了一個(gè)叫AWT(AbstractWindowingToolkit)的庫(kù),用來(lái)構(gòu)建圖形用戶界面應(yīng)用程序。Java很有雄心的宣言--"writeonce,runanywhere"許諾:一個(gè)具有下拉菜單,命令按鈕,滾動(dòng)條以及其他常見(jiàn)的GUI控件的應(yīng)用程序?qū)⒛軌蛟诟鞣N操作系統(tǒng)上運(yùn)行而不必重新編譯成針對(duì)某一平臺(tái)的二進(jìn)制代碼,包括MicrosoftWindows,Sun’sownSolaris,Apple’sMacOS以及Linux。雖然最初Java是支持操作系統(tǒng)獨(dú)立的應(yīng)用程序開(kāi)發(fā),在Java提出"writeonce,runanywhere"宣言那段時(shí)間的革命導(dǎo)致了Javaapplet和主導(dǎo)桌面應(yīng)用程序計(jì)劃的產(chǎn)生。盡管從那以后大部分構(gòu)建桌面應(yīng)用程序的成就都慢慢衰退,Java構(gòu)建圖形用戶界面的能力反倒增強(qiáng)了。跟蹤JavaGUI的發(fā)展和演化,我們將發(fā)現(xiàn)3個(gè)主要的構(gòu)建窗口程序庫(kù):AWT,Swing和SWT(StandardWidgetToolkit)。在本系統(tǒng)中,主要采用的是Swing。2.2.2Swing的概述Swing是SUN公司退出的第二代圖形用戶接口工具包,通過(guò)Swing可以開(kāi)發(fā)出功能強(qiáng)大,界面優(yōu)美的客戶應(yīng)用程序。Swing不但提供了很多功能完善的控件,而且其還具有良好的擴(kuò)展能力,用Swing來(lái)進(jìn)行交互界面的開(kāi)發(fā)是一件另開(kāi)發(fā)人員非常愉快的工作。Swing從誕生到現(xiàn)在大致經(jīng)歷了如下幾個(gè)階段。Swing項(xiàng)目是從1996年底開(kāi)始的,在項(xiàng)目開(kāi)始的同時(shí)所有的參與者共同選定了這個(gè)名稱(chēng),目的就是開(kāi)發(fā)一個(gè)不依賴(lài)于本地系統(tǒng)的圖形用戶接口工具包。1997年后半年Swing進(jìn)入測(cè)試階段,并在1998年春隨同JDK1.1首次發(fā)行,對(duì)于JDK1.1之前的版本,是不能使用Swing庫(kù)的。Swing從首次發(fā)行開(kāi)始,就不斷快速的成長(zhǎng),自JDK1.2之后,便被完全集成到了java的標(biāo)準(zhǔn)類(lèi)庫(kù)中,成為java基礎(chǔ)類(lèi)庫(kù)(JFC)大家族中一個(gè)重要組成部分。2.2.3Swing的特點(diǎn)Swing的特點(diǎn)主要包括完全輕量級(jí)的控件、可插拔的感觀風(fēng)格、更多的控件擴(kuò)展3個(gè)方面。完全輕量級(jí)的控件:幾乎所有的Swing控件都是輕量級(jí)的、純java開(kāi)發(fā)的,這樣在控件對(duì)自己進(jìn)行繪制時(shí)就不會(huì)依賴(lài)本地操作系統(tǒng)平臺(tái)的對(duì)等控件,而是使用繪制圖形的基本元素直接通過(guò)java平臺(tái)在屏幕上進(jìn)行繪制,這樣就避免了早期不是使用輕量級(jí)控件的java圖形用戶界面程序在不同的操作系統(tǒng)中運(yùn)行時(shí)有不同的外觀,切換操作系統(tǒng)后顯示不正常等問(wèn)題[6]??刹灏蔚母杏^風(fēng)格:Swing在界面顯示上很吸引人的一點(diǎn)就是支持可插拔的感觀風(fēng)格,主要包含以下幾個(gè)方面:Swing能夠模擬各種不同操作系統(tǒng)的感觀風(fēng)格,其類(lèi)庫(kù)中就包含了Windows,UnixMotif,LinuxGTK,MacOSX以及JavaMetal等感觀風(fēng)格。如果有需要,開(kāi)發(fā)人員還可以通過(guò)系統(tǒng)提供的接口編寫(xiě)自定義的感觀風(fēng)格。Swing還允許用戶在不關(guān)閉應(yīng)用程序的情況下,在各種感觀風(fēng)格之間進(jìn)行自由切換。系統(tǒng)自帶的JavaMetal感觀風(fēng)格合并了眾多風(fēng)格中最好的圖形元素,甚至增加了一些屬于其自己的特性?,F(xiàn)在的Metal感觀風(fēng)格支持多種不同的主題,各主題之間在顏色和字體等方面都有所不同,用戶如果有需要,還可以開(kāi)發(fā)自己的主題。更多的控件擴(kuò)展:Swing中增加了許多新的控件并且為每個(gè)控件都增加了工具提示的功能,同時(shí)Swing還支持任意數(shù)量嵌套邊框的鑲邊替代物,并且可以任意的將鍵盤(pán)事件綁定到控件中。2.3開(kāi)發(fā)環(huán)境以下版本是本次使用:操作系統(tǒng):WindowsXPJava虛擬機(jī):JDK1.6開(kāi)發(fā)工具:MyEclipse5.53系統(tǒng)的總體分析3.1需求分析本模塊要實(shí)現(xiàn)的功能模塊包括:菜單欄模塊,工具欄模塊,地址欄模塊,瀏覽器選項(xiàng)卡模塊以及收藏夾模塊。1.菜單欄模塊內(nèi)容包括文件菜單,轉(zhuǎn)到菜單,調(diào)整菜單和收藏夾菜單。主要是通過(guò)菜單欄的操作實(shí)現(xiàn)網(wǎng)頁(yè)的前進(jìn),后退,停止,刷新和轉(zhuǎn)到功能,還包括收藏夾的新建與整理。2.工具欄的功能則是實(shí)現(xiàn)常用的操作,通過(guò)點(diǎn)擊工具圖標(biāo)來(lái)實(shí)現(xiàn)菜單欄中所有的操作。3.地址欄模塊則用來(lái)接收用戶輸入的網(wǎng)站地址,然后將該地址傳給瀏覽器組件,呈現(xiàn)指定的網(wǎng)頁(yè)。4.瀏覽器選項(xiàng)卡模塊實(shí)現(xiàn)在同一個(gè)窗體中顯示多個(gè)頁(yè)面。5.收藏夾模塊是本設(shè)計(jì)中最重要的一部分,包括整理收藏夾菜單和添加收藏夾菜單,可在程序運(yùn)行的過(guò)程中根據(jù)用戶保存的內(nèi)容,填充收藏夾的內(nèi)容,且在網(wǎng)頁(yè)瀏覽器重新啟動(dòng)的情況下依舊保留有上次保存的網(wǎng)頁(yè)。3.2系統(tǒng)結(jié)構(gòu)與設(shè)計(jì)分析3.2.1響應(yīng)模式用戶在地址欄輸入一個(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)返回給用戶。用戶www用戶wwwIE內(nèi)核網(wǎng)頁(yè)類(lèi)別庫(kù)特征提取模塊網(wǎng)頁(yè)分類(lèi)算法圖3-1響應(yīng)模式3.2.2結(jié)構(gòu)分析本模塊設(shè)計(jì)的瀏覽器,有菜單欄,工具欄,地址欄,頁(yè)面顯示區(qū),收藏夾。它的主要特點(diǎn)有:1.基于IE內(nèi)核,采用多窗口多線程工作方式,節(jié)約了系統(tǒng)資源,穩(wěn)定性好,不會(huì)像那樣因打開(kāi)多窗口而使系統(tǒng)速度緩慢,甚至出現(xiàn)“程序沒(méi)有相應(yīng)“等現(xiàn)象。2.對(duì)網(wǎng)頁(yè)自動(dòng)分類(lèi),這是它的特點(diǎn)。當(dāng)用戶在瀏覽網(wǎng)頁(yè)進(jìn)入一個(gè)從未到過(guò)的網(wǎng)站時(shí),很容易導(dǎo)致迷航,用戶先閱讀網(wǎng)頁(yè)才能判定該網(wǎng)頁(yè)是否是自己所感興趣的網(wǎng)頁(yè)。這樣,用戶把大量時(shí)間和精力花費(fèi)在不必要的網(wǎng)頁(yè)上,分散了用戶的注意力。3.提供類(lèi)別導(dǎo)航功能。它將已分類(lèi)的網(wǎng)站地址置入各類(lèi)別中,用戶可以根據(jù)自己感興趣的主題進(jìn)行訪問(wèn)和瀏覽。類(lèi)別的跟新,修改,添加等維護(hù)一般由系統(tǒng)進(jìn)行,也可由用戶自己手動(dòng)維護(hù)。系統(tǒng)可以根據(jù)類(lèi)別的更改而自行調(diào)整系統(tǒng)的分類(lèi)結(jié)果。3.3功能結(jié)構(gòu)圖以下是本模塊的功能結(jié)構(gòu)圖:網(wǎng)頁(yè)瀏覽器功能模塊網(wǎng)頁(yè)瀏覽器功能模塊瀏覽器操縱收藏夾前進(jìn)后退停止刷新轉(zhuǎn)到添加收藏夾整理收藏夾主頁(yè)創(chuàng)建文件夾選擇收藏夾節(jié)添加創(chuàng)建文件夾重命名移動(dòng)到刪除圖3-2功能結(jié)構(gòu)4系統(tǒng)功能與實(shí)現(xiàn)瀏覽器的窗體是程序的主界面,它包括瀏覽指定的網(wǎng)站,收藏網(wǎng)站信息等業(yè)務(wù)。主要由菜單欄,工具欄,地址欄,瀏覽器選項(xiàng)卡和狀態(tài)欄組成。4.1核心技術(shù)4.1.1JDIC項(xiàng)目實(shí)現(xiàn)瀏覽器組件瀏覽器組件API可以讓你訪問(wèn)幾個(gè)瀏覽器事件以及在歷史記錄上的控制(向前,后退,刷新)[7]。未來(lái)修訂的API版本希望能提供更多存取瀏覽器和任意裝載的文檔的功能。在你的應(yīng)用里使用瀏覽器組件實(shí)在是非常容易:importorg.jdesktop.jdic.browser.*;import.*;importjavax.swing.*;publicclassBrowserTest{publicstaticvoidmain(String[]args)throwsException{WebBrowserbrowser=newWebBrowser();browser.setURL(newURL(""));JFrameframe=newJFrame("BrowserTest");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.getContentPane().add(browser);frame.pack();frame.setSize(500,500);frame.setVisible(true);}}正如你所看到的那樣,WebBrowser對(duì)象僅僅是一個(gè)你可以把它放入一個(gè)標(biāo)準(zhǔn)的Jframe中的AWT組件。Main方法的第一行創(chuàng)建了一個(gè)新的WebBrowser,第二行設(shè)置了你想顯示的URL。其他的代碼創(chuàng)建了一個(gè)frame,把瀏覽器加入其中,并使得frame可見(jiàn)記住WebBrowser是個(gè)本地AWT組件,因此你可能陷入與Swing結(jié)合的困境。混合它們的兩個(gè)規(guī)則是1)不要讓Swing和AWT組件重疊和2)在你的菜單上調(diào)用setLightWeightPopupEnabled(false)否則它們將消失在瀏覽器組件后邊。4.1.2收藏夾的保存與裝載收藏夾模塊的功能可以將正在瀏覽的網(wǎng)址添加到收藏夾中,并且提供分類(lèi),通常的做法是將收藏夾的內(nèi)容存放在集合類(lèi)中,如果程序關(guān)閉,收藏夾的內(nèi)容和分類(lèi)將丟失,因?yàn)樗鼈儧](méi)有被持久化。將收藏夾持久化的方法有兩種:持久化到數(shù)據(jù)庫(kù)可以將收藏夾內(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)容從新顯示。持久化到文件中另一種方法將收藏夾的內(nèi)容保存到一個(gè)數(shù)據(jù)文件中,例如”favorite.data”,這種方法保存收藏夾數(shù)據(jù)可以節(jié)省訪問(wèn)數(shù)據(jù)庫(kù)的開(kāi)銷(xiāo),也可以隨瀏覽器模塊一同發(fā)布,既方便又節(jié)省資源。4.1.3阻止IE打開(kāi)彈出窗口使用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)[8]。因此必須攔截這些需要在新窗體顯示的網(wǎng)頁(yè)信息,本模塊繼承了WebBrowser組件實(shí)現(xiàn)了瀏覽器組件的Browser類(lèi),它重寫(xiě)了父類(lèi)的willOpenWindow()方法,在有需要顯示在新窗體的網(wǎng)頁(yè)信息時(shí),該方法會(huì)創(chuàng)建新的選項(xiàng)卡顯示這個(gè)網(wǎng)頁(yè)。4.2菜單欄的實(shí)現(xiàn)瀏覽器模塊的菜單欄幾乎容納了所有功能的操作連接,它用于整個(gè)瀏覽器模塊的導(dǎo)航,快速方便的執(zhí)行瀏覽操作,例如前進(jìn),后退,刷新等。4.2.1文件菜單文件菜單包括”設(shè)置主頁(yè)”,”打印”,”退出”3個(gè)菜單項(xiàng),其中”設(shè)置主頁(yè)”將用戶輸入的網(wǎng)址信息創(chuàng)建為URL對(duì)象。如果創(chuàng)建URL對(duì)象時(shí)拋出異常,說(shuō)明URL格式不標(biāo)準(zhǔn),將以對(duì)話框的形式提示用戶URL格式非法,當(dāng)輸入格式正確時(shí),程序?qū)RL對(duì)象序列化到收藏夾得數(shù)據(jù)文件中。單擊打印菜單時(shí),將調(diào)用工具欄上”打印”按鈕的doClick()方法,執(zhí)行按鈕的鼠標(biāo)單擊操作,程序會(huì)執(zhí)行按鈕的時(shí)間處理代碼。單擊菜單欄的“退出”菜單項(xiàng)時(shí),菜單項(xiàng)的事件監(jiān)聽(tīng)器將調(diào)用業(yè)務(wù)方法完成退出命令。在業(yè)務(wù)方法中執(zhí)行了System類(lèi)的exit()方法退出Java虛擬機(jī),從而終止程序運(yùn)行。4.2.2轉(zhuǎn)到菜單轉(zhuǎn)到菜單包含了瀏覽器的控制命令,這些命令包括”主頁(yè)”,”前進(jìn)””后退””停止””刷新”。這些控制命令,在菜單欄中也提供了相應(yīng)的操作按鈕,為減少代碼重復(fù),本模塊在這些菜單欄的事件處理中直接調(diào)用工具欄相應(yīng)按鈕的doClick()方法,執(zhí)行按鈕的業(yè)務(wù)代碼。//停止菜單項(xiàng)的業(yè)務(wù)privatevoidstopMenuItemActionPerformed(java.awt.event.ActionEventevt){stopButton.doClick();//執(zhí)行停止按鈕的單擊方法 }//刷新菜單項(xiàng)的業(yè)務(wù)方法privatevoidrefreshMenuItemActionPerformed(java.awt.event.ActionEventevt){refreshButton.doClick();//執(zhí)行刷新按鈕的單擊方法 }//后退菜單項(xiàng)的業(yè)務(wù)方法privatevoidbackMenuItemActionPerformed(java.awt.event.ActionEventevt){backButton.doClick();//執(zhí)行后退按鈕的單擊方法 }//前進(jìn)菜單項(xiàng)的業(yè)務(wù)方法privatevoidforwardMenuItemActionPerformed(java.awt.event.ActionEventevt){forwardButton.doClick();//執(zhí)行前進(jìn)按鈕的單擊方法 }//打印菜單項(xiàng)的業(yè)務(wù)方法privatevoidprintMenuItemActionPerformed(java.awt.event.ActionEventevt){printButton.doClick();//執(zhí)行主頁(yè)按鈕的單擊方法 }4.2.3調(diào)整菜單本模塊的網(wǎng)頁(yè)瀏覽器部分布置在一個(gè)選項(xiàng)卡組件中,選項(xiàng)卡的標(biāo)簽名稱(chēng)為網(wǎng)頁(yè)的標(biāo)題命名,這樣用戶可以創(chuàng)建多個(gè)選項(xiàng)卡瀏覽更多的網(wǎng)站。4.3工具欄的實(shí)現(xiàn)工具欄用于執(zhí)行常用的操作,網(wǎng)頁(yè)瀏覽器模塊的控制命令使用最頻繁,因此將瀏覽器的控制命令提取到工具欄中。工具欄上的每個(gè)按鈕都設(shè)置了文本提示,每個(gè)按鈕都添加了單獨(dú)的事件監(jiān)聽(tīng)器,在不同的事件監(jiān)聽(tīng)器中調(diào)用處理該按鈕業(yè)務(wù)的方法[9]。編寫(xiě)各個(gè)按鈕的事物處理方法,這些業(yè)務(wù)處理方法被不同按鈕的事件監(jiān)聽(tīng)器調(diào)用。瀏覽器的控制按鈕的業(yè)務(wù)邏輯,基本通過(guò)調(diào)用Browser瀏覽器組件的方法實(shí)現(xiàn),例如print()方法可以執(zhí)行打印任務(wù),//后退按鈕的事件處理方法privatevoidbackButtonActionPerformed(java.awt.event.ActionEventevt){Browserbrowser=getSelBrowser();if(browser.isBackEnabled()){//如果后退操作可行 browser.back();//執(zhí)行后退 } }//停止按鈕的事件處理方法privatevoidstopButtonActionPerformed(java.awt.event.ActionEventevt){Browserbrowser=getSelBrowser();browser.stop();//執(zhí)行停止操作 }//前進(jìn)按鈕的事件處理方法privatevoidforwardButtonActionPerformed(java.awt.event.ActionEventevt){Browserbrowser=getSelBrowser();if(browser.isForwardEnabled()){//如果前進(jìn)操作可行browser.forward();//執(zhí)行前進(jìn)操作 } }//刷新按鈕的事件處理方法privatevoidrefreshButtonActionPerformed(java.awt.event.ActionEventevt){Browserbrowser=getSelBrowser();browser.refresh();//執(zhí)行刷新操作 }//主頁(yè)按鈕的事件處理方法privatevoidhomePageButtonActionPerformed(java.awt.event.ActionEventevt){Browserbrowser=getSelBrowser();browser.setURL(homePage);//設(shè)置瀏覽器當(dāng)前網(wǎng)址 }4.4地址欄的實(shí)現(xiàn)地址欄是網(wǎng)頁(yè)瀏覽器的重要功能,它接收用戶輸入的將要訪問(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)用戶在地址欄的地址文本框輸入網(wǎng)站地址并單擊右側(cè)的“轉(zhuǎn)到”按鈕時(shí),它下面的瀏覽器選項(xiàng)卡將創(chuàng)建一個(gè)新的選項(xiàng)卡,并在選項(xiàng)卡中放置一個(gè)瀏覽器組件顯示新的網(wǎng)頁(yè)內(nèi)容[10]。jLabel1.setText("地址:"); //地址標(biāo)簽addressBar.add(jLabel1,BorderLayout.WEST); //添加標(biāo)簽到地址欄address.setText("http://"); //設(shè)置地址文本框內(nèi)容addressBar.add(address,BorderLayout.CENTER); //添加地址文本框到地址欄goButton.setText("轉(zhuǎn)到"); //設(shè)置轉(zhuǎn)到按的文本goButton.setFocusable(false);goButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);goButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);//添加轉(zhuǎn)到按鈕的事件監(jiān)聽(tīng)器,當(dāng)單擊轉(zhuǎn)到按鈕時(shí),執(zhí)行業(yè)務(wù)方法goButton.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerformed(java.awt.event.ActionEventevt){goButtonActionPerformed(evt); //調(diào)用轉(zhuǎn)到按鈕的業(yè)務(wù)方法 } });addressBar.add(goButton,BorderLayout.EAST); //添加轉(zhuǎn)到按鈕到地址欄4.5瀏覽器選項(xiàng)卡的實(shí)現(xiàn)以前的瀏覽器都是單個(gè)窗體的軟件,在每次需要同時(shí)瀏覽不同的網(wǎng)站或者在新窗口顯示網(wǎng)頁(yè)的情況下,都需要重新啟動(dòng)或彈出一個(gè)瀏覽器軟件來(lái)顯示指定的網(wǎng)頁(yè)內(nèi)容。因此本模塊使用瀏覽器面板作為所有瀏覽器組件的容器:4.5.1繼承擴(kuò)展瀏覽器組件由于網(wǎng)頁(yè)的超級(jí)鏈接或JavaScript腳本可以在新的瀏覽器窗口中顯示內(nèi)容,而新建立的瀏覽器窗體會(huì)使用默認(rèn)的瀏覽器打開(kāi)網(wǎng)頁(yè),因此本模塊必須繼承WebBrowser類(lèi)來(lái)編寫(xiě)自己的瀏覽器組件類(lèi)Browser[11]。這樣就可以重寫(xiě)父類(lèi)的willOpenWindow()方法攔截彈出新窗體顯示網(wǎng)頁(yè)內(nèi)容的事件,然后再該方法中使用自己的事件,在選項(xiàng)卡面板中創(chuàng)建瀏覽器組件顯示網(wǎng)頁(yè)。4.5.2編寫(xiě)瀏覽器面板將擴(kuò)展的Browser瀏覽器組件封裝在一個(gè)面板中實(shí)現(xiàn)瀏覽器面板,這個(gè)面板將被添加到存放瀏覽器的選項(xiàng)卡面板中.瀏覽器面板添加了Browser瀏覽器組件的實(shí)例對(duì)象,并且為瀏覽器組件添加了事件監(jiān)聽(tīng)器[12]。4.5.3編寫(xiě)瀏覽器選項(xiàng)卡面板本模塊的選項(xiàng)卡面板用于存放瀏覽器組件,使瀏覽器支持選項(xiàng)卡界面創(chuàng)建選項(xiàng)卡時(shí)為面板添加鼠標(biāo)單擊事件,在用戶單擊選項(xiàng)卡的標(biāo)簽時(shí)執(zhí)行業(yè)務(wù)方法。另外,還設(shè)置了選項(xiàng)卡面板的模型對(duì)象,包括選項(xiàng)卡的選擇事件的處理方法。CreateBrowser()和getSelBrowser()方法分別用于在選項(xiàng)卡面板創(chuàng)建瀏覽器面板和獲取當(dāng)前選擇的面板中的瀏覽器組件實(shí)例[13]。本模塊使用JDIC類(lèi)庫(kù)來(lái)實(shí)現(xiàn)瀏覽器界面,該類(lèi)庫(kù)可以從/地址下載,在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í)。4.5.4編寫(xiě)瀏覽器組件監(jiān)聽(tīng)器在編寫(xiě)瀏覽器面板組件時(shí),在面板中創(chuàng)建了瀏覽器組件,同時(shí)也為該組件添加了事件監(jiān)聽(tīng)器[14]。4.6收藏夾的實(shí)現(xiàn)收藏夾是瀏覽器不可缺少的功能,它記錄上網(wǎng)時(shí)常用的,經(jīng)典的網(wǎng)站地址。4.6.1添加到收藏夾在瀏覽器模塊的主窗體上單擊”收藏夾”/”添加到收藏夾”菜單項(xiàng),將啟動(dòng)添加收藏夾功能,該功能能將當(dāng)前瀏覽器訪問(wèn)的網(wǎng)站地址添加到收藏夾中,日后可以從收藏夾中直接選擇瀏覽器指定的網(wǎng)址。添加收藏夾功能的實(shí)現(xiàn)步驟如下: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ì)話框的實(shí)例,把其余的工作交由該對(duì)話框?qū)崿F(xiàn)。2.在”添加到收藏夾”對(duì)話框中編寫(xiě)初始化收藏夾樹(shù)組件的方法,該方法將在對(duì)話框的構(gòu)造方法中被調(diào)用,它將調(diào)用loadMenu()方法添加收藏夾菜單的內(nèi)容。3.編寫(xiě)裝載收藏夾菜單內(nèi)容的loadMenu()方法,該方法使用遞歸算法遍歷收藏夾的數(shù)據(jù)集合對(duì)象,從這個(gè)集合對(duì)象中裝載收藏夾的所有內(nèi)容到”收藏夾”菜單中。4.編寫(xiě)”確定”按鈕的業(yè)務(wù)處理方法,該方法在用戶輸入名稱(chēng)標(biāo)識(shí)并單擊按鈕時(shí)被”確定”按鈕的事件監(jiān)聽(tīng)器調(diào)用,它將完成從讀取用戶輸入名稱(chēng)標(biāo)識(shí)到保存網(wǎng)站地址到收藏夾的全過(guò)程。4.6.2整理收藏夾整理收藏夾的實(shí)現(xiàn)比較復(fù)雜,它的樹(shù)組件要顯示的收藏夾內(nèi)容包括文件夾和收藏的網(wǎng)址信息,而且可以對(duì)這些信息進(jìn)行維護(hù)和移動(dòng)操作。其中包括”創(chuàng)建文件夾”,”重命名”,”刪除”操作。實(shí)現(xiàn)過(guò)程如下: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ì)話框完成。2.編寫(xiě)”整理收藏夾”對(duì)話框的構(gòu)造方法,在構(gòu)造方法中分別調(diào)用初始化對(duì)話框界面的方法和初始化收藏夾樹(shù)組件的方法。3.編寫(xiě)初始化樹(shù)組件的方法,該方法將調(diào)用loadFavoriteNode()方法裝載樹(shù)節(jié)點(diǎn)內(nèi)容,4.編寫(xiě)裝載樹(shù)組件節(jié)點(diǎn)內(nèi)容的方法,該方法使用了遞歸方法,原因是要遍歷的內(nèi)容包括子節(jié)點(diǎn)的嵌套。6.編寫(xiě)”重命名”按鈕的事件處理方法,作為維護(hù)操作重命名是必不可少的,特別是收藏夾中的文件夾。如果沒(méi)有重命名,則需要?jiǎng)h除文件,重新建立;如果文件夾中包含大量的收藏信息,會(huì)損失很多資源。單擊”重命名”按鈕時(shí),將在事件監(jiān)聽(tīng)器中調(diào)用該方法完成命名操作。7.編寫(xiě)”刪除”按鈕的事件處理方法,該方法將在”刪除”按鈕的事件監(jiān)聽(tīng)器中被調(diào)用。8.編寫(xiě)”移動(dòng)到”按鈕的事件處理方法,該方法用于移動(dòng)收藏選項(xiàng)到其他文件夾中,其按鈕的事件監(jiān)聽(tīng)器將調(diào)用該方法。5測(cè)試5.1測(cè)試與調(diào)試的基本概念軟件測(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)[15]。常用的軟件測(cè)試方法有兩大類(lèi):靜態(tài)測(cè)試方法和動(dòng)態(tài)測(cè)試方法。靜態(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ò)程。按照通常的軟件系統(tǒng)測(cè)試,可以分別進(jìn)行單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試、系統(tǒng)測(cè)試,最后進(jìn)行驗(yàn)收測(cè)試,即由用戶通過(guò)試用系統(tǒng)而進(jìn)行測(cè)試,檢驗(yàn)系統(tǒng)的可用性及與用戶配合的程度。調(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è))元素,這是調(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ò)誤[16]。具體地說(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)容、打印語(yǔ)句和自動(dòng)工具。5.2測(cè)試時(shí)間本系統(tǒng)的測(cè)試分為以下幾個(gè)階段進(jìn)行:第一階段:根據(jù)需求分析劃定軟件中要測(cè)試的功能和性能的范圍,確定測(cè)試的內(nèi)容。第二階段:分模塊對(duì)系統(tǒng)中的各模塊進(jìn)行測(cè)試,對(duì)需求分析中各模塊的功能和性能及用戶的特殊需求進(jìn)行測(cè)試,記下各模塊的所有的問(wèn)題,及時(shí)解決。第三階段:在模塊測(cè)試的基礎(chǔ)上將各模塊拼接進(jìn)行整體功能和性能的測(cè)試。第四階段:綜合測(cè)試。5.3軟件測(cè)試的內(nèi)容分模塊對(duì)其進(jìn)行測(cè)試:1.菜單欄模塊:能通過(guò)菜單欄的操作實(shí)現(xiàn)網(wǎng)頁(yè)的前進(jìn),后退,停止,刷新和轉(zhuǎn)到功能,收藏夾的新建與整理。圖5-1主頁(yè)圖5-2文件菜單圖5-3轉(zhuǎn)到菜單圖5-4調(diào)整菜單圖5-5收藏夾菜單2.工具欄模塊:能通過(guò)點(diǎn)擊工具圖標(biāo)來(lái)實(shí)現(xiàn)一些常用的操作。圖5-6工具欄的后退功能功能3.地址欄模塊:用來(lái)接收用戶輸入的網(wǎng)站地址,然后將該地址傳給瀏覽器組件,呈現(xiàn)指定的網(wǎng)頁(yè)。圖5-7輸入新浪網(wǎng)址點(diǎn)轉(zhuǎn)到圖5-8成功轉(zhuǎn)到指定網(wǎng)頁(yè)4.瀏覽器選項(xiàng)卡模塊:實(shí)現(xiàn)在同一個(gè)窗體中顯示多個(gè)頁(yè)面。圖5-9多頁(yè)面顯示5.收藏夾模塊:能對(duì)收藏夾進(jìn)行添加網(wǎng)頁(yè)和整理操作。圖5-10往文件夾添加圖5-11整理收藏夾6結(jié)論本文主要探討了基于java的瀏覽器的設(shè)計(jì)與實(shí)現(xiàn)。并且實(shí)現(xiàn)瀏覽器的一些簡(jiǎn)單功能。包括:前進(jìn)和后退,設(shè)置主頁(yè),添加收藏夾和管理收藏夾,刷新頁(yè)面,還有在同一個(gè)窗體中顯示多個(gè)頁(yè)面。該瀏覽器程序基于IE內(nèi)核,采用多窗口多線程工作方式,節(jié)約了系統(tǒng)資源,穩(wěn)定性好。而且還提供類(lèi)別導(dǎo)航功能,將已分類(lèi)的網(wǎng)站地址置入各類(lèi)別中,用戶可以根據(jù)自己感興趣的主題進(jìn)行訪問(wèn)和瀏覽。然而,系統(tǒng)仍然存在很大的改進(jìn)空間,可以通過(guò)進(jìn)一步的設(shè)計(jì)提高性能和實(shí)用性。由于本人的水平有限,對(duì)其中的某些問(wèn)題未能進(jìn)行深入的分析和研究,還需要在今后的工作中努力學(xué)習(xí)和探討。文中的不足之處,敬請(qǐng)各位老師指正。參考文獻(xiàn)[1]《程序員》雜志社.程序員2011合訂本下[J].電子工業(yè)出版社,2011,24(22):150-160[2]馬俊,范玫.JAVA語(yǔ)言面向?qū)ο蟪绦蛟O(shè)計(jì)[M].機(jī)械工業(yè)出版社,2009:183-190[3]于萬(wàn)波.Java語(yǔ)言實(shí)用教程[M].清華大學(xué)出版社,2008:143-150[4]劉亞濱.精通Eclipse[M].北京:電子工業(yè)出版社,2004:45-80[5]馬少平.人工智能[M].清華大學(xué)出版社,2011:78-110[6]耿祥義.Java課程設(shè)計(jì)[M].清華大學(xué)出版社,2009:67-90[7]耿祥義,張躍平.Java面向?qū)ο蟪绦蛟O(shè)計(jì)[M].清華大學(xué)出版社,2010:88-120[8]朱福喜,唐曉軍.Java程序設(shè)計(jì)技巧與開(kāi)發(fā)實(shí)例[M].人民郵電出版社,2010:44-130[9](美)BruceEckel著,陳昊鵬譯.Java編程思想[M].第四版.機(jī)械工業(yè)出版社,2009:120-140[10]飛思科技產(chǎn)品研發(fā)中心.Java2應(yīng)用開(kāi)發(fā)指南[M].第二版.電子工業(yè)出版社,2011:182-200[11]於東軍,楊靜宇,李千目,王過(guò)全.Java程序設(shè)計(jì)與應(yīng)用開(kāi)發(fā)[M].清華大學(xué)出版社,2011:120-140[12](美)昊斯特曼著,葉乃文,鄺勁筠,杜永萍譯.Java核心技術(shù):卷Ⅰ基礎(chǔ)知識(shí)(原書(shū)第8版)[M].機(jī)械工業(yè)出版社,2010:200-230[13]李剛.瘋狂Java講義[M].電子工業(yè)出版社,2011:120-150[14]李興華.名師講壇——Java開(kāi)發(fā)實(shí)戰(zhàn)經(jīng)典[M].清華大學(xué)出版社,2009:110-130[15]雍俊海.Java程序設(shè)計(jì)教程[M].清華大學(xué)出版社,2010:168-174[16]孫家廣.軟件工程理論、方法與實(shí)踐[M].清華大學(xué)出版社,2011:132-148致謝經(jīng)過(guò)兩個(gè)多月的努力,畢業(yè)設(shè)計(jì)已經(jīng)基本上完成了。在畢業(yè)設(shè)計(jì)期間他們給予了我悉心指導(dǎo)和大力幫助,在我的選題和論文撰寫(xiě)過(guò)程中對(duì)文檔進(jìn)行了認(rèn)真檢查,嚴(yán)格督促和仔細(xì)批閱,并對(duì)我的課題提出了許多富有啟發(fā)性和建設(shè)性的意見(jiàn)和建議。同時(shí)我還要感謝我身邊的同學(xué)是他們一直的支持給了我堅(jiān)持自己做下去的勇氣,并在論文的撰寫(xiě)上給了我很大的幫助。在做畢業(yè)設(shè)計(jì)的過(guò)程中好幾次我都想放棄了,是他們鼓勵(lì)我,告訴我我能行,最后在同學(xué)和老師的幫助和指導(dǎo)下我成功的完成了自己的畢業(yè)設(shè)計(jì),在這里送上我由衷的感謝?;贑8051F單片機(jī)直流電動(dòng)機(jī)反饋控制系統(tǒng)的設(shè)計(jì)與研究基于單片機(jī)的嵌入式Web服務(wù)器的研究MOTOROLA單片機(jī)MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對(duì)良率的影響研究基于模糊控制的電阻釬焊單片機(jī)溫度控制系統(tǒng)的研制基于MCS-51系列單片機(jī)的通用控制模塊的研究基于單片機(jī)實(shí)現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調(diào)節(jié)器單片機(jī)控制的二級(jí)倒立擺系統(tǒng)的研究基于增強(qiáng)型51系列單片機(jī)的TCP/IP協(xié)議棧的實(shí)現(xiàn)基于單片機(jī)的蓄電池自動(dòng)監(jiān)測(cè)系統(tǒng)基于32位嵌入式單片機(jī)系統(tǒng)的圖像采集與處理技術(shù)的研究基于單片機(jī)的作物營(yíng)養(yǎng)診斷專(zhuān)家系統(tǒng)的研究基于單片機(jī)的交流伺服電機(jī)運(yùn)動(dòng)控制系統(tǒng)研究與開(kāi)發(fā)基于單片機(jī)的泵管內(nèi)壁硬度測(cè)試儀的研制基于單片機(jī)的自動(dòng)找平控制系統(tǒng)研究基于C8051F040單片機(jī)的嵌入式系統(tǒng)開(kāi)發(fā)基于單片機(jī)的液壓動(dòng)力系統(tǒng)狀態(tài)監(jiān)測(cè)儀開(kāi)發(fā)模糊Smith智能控制方法的研究及其單片機(jī)實(shí)現(xiàn)一種基于單片機(jī)的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機(jī)沖床數(shù)控系統(tǒng)的研究基于CYGNAL單片機(jī)的在線間歇式濁度儀的研制基于單片機(jī)的噴油泵試驗(yàn)臺(tái)控制器的研制基于單片機(jī)的軟起動(dòng)器的研究和設(shè)計(jì)基于單片機(jī)控制的高速快走絲電火花線切割機(jī)床短循環(huán)走絲方式研究基于單片機(jī)的機(jī)電產(chǎn)品控制系統(tǒng)開(kāi)發(fā)基于PIC單片機(jī)的智能手機(jī)充電器基于單片機(jī)的實(shí)時(shí)內(nèi)核設(shè)計(jì)及其應(yīng)用研究基于單片機(jī)的遠(yuǎn)程抄表系統(tǒng)的設(shè)計(jì)與研究基于單片機(jī)的煙氣二氧化硫濃度檢測(cè)儀的研制基于微型光譜儀的單片機(jī)系統(tǒng)單片機(jī)系統(tǒng)軟件構(gòu)件開(kāi)發(fā)的技術(shù)研究基于單片機(jī)的液體點(diǎn)滴速度自動(dòng)檢測(cè)儀的研制基于單片機(jī)系統(tǒng)的多功能溫度測(cè)量?jī)x的研制基于PIC單片機(jī)的電能采集終端的設(shè)計(jì)和應(yīng)用基于單片機(jī)的光纖光柵解調(diào)儀的研制氣壓式線性摩擦焊機(jī)單片機(jī)控制系統(tǒng)的研制基于單片機(jī)的數(shù)字磁通門(mén)傳感器基于單片機(jī)的旋轉(zhuǎn)變壓器-數(shù)字轉(zhuǎn)換器的研究基于單片機(jī)的光纖Bragg光柵解調(diào)系統(tǒng)的研究單片機(jī)控制的便攜式多功能乳腺治療儀的研制基于C8051F020單片機(jī)的多生理信號(hào)檢測(cè)儀基于單片機(jī)的電機(jī)運(yùn)動(dòng)控制系統(tǒng)設(shè)計(jì)Pico專(zhuān)用單片機(jī)核的可測(cè)性設(shè)計(jì)研究基于MCS-51單片
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年檢驗(yàn)技師職業(yè)資格考試試題及答案
- 2025年監(jiān)理工程師之監(jiān)理概論題庫(kù)附參考答案(綜合題)
- 經(jīng)濟(jì)高頻考點(diǎn)財(cái)政政策
- 農(nóng)民合作農(nóng)業(yè)經(jīng)濟(jì)互助合作協(xié)議
- 經(jīng)濟(jì)法高頻考點(diǎn)總結(jié)
- 電商平臺(tái)退款和售后服務(wù)規(guī)則協(xié)議
- 感謝爸爸媽媽450字(15篇)
- 關(guān)于國(guó)慶節(jié)記事作文9篇
- 期末作文第一次勞動(dòng)1200字12篇
- 金融必考12個(gè)知識(shí)點(diǎn)
- 教學(xué)設(shè)計(jì)課件比賽封面設(shè)計(jì)
- 2025年行政執(zhí)法基礎(chǔ)知識(shí)綜合練習(xí)題及答案詳解
- 中國(guó)新疆棉花行業(yè)市場(chǎng)運(yùn)行現(xiàn)狀及未來(lái)發(fā)展預(yù)測(cè)報(bào)告
- 綜掘機(jī)司機(jī)技能測(cè)試題庫(kù)及答案
- 三升四數(shù)學(xué)《30天暑假作業(yè)》每日一練
- 2025年中級(jí)消防設(shè)施操作員證考試600題(附答案)
- 職業(yè)病危害因素檢測(cè)與評(píng)價(jià)-工作場(chǎng)所空氣中粉塵濃度的測(cè)定
- 四川省廣安市2024-2025學(xué)年高一下學(xué)期期末考試數(shù)學(xué)試題(含答案)
- 展臺(tái)搭建施工管理辦法
- 飲品課堂講課教學(xué)課件
- HAUNI-KLD-2烘絲機(jī)設(shè)備結(jié)構(gòu)
評(píng)論
0/150
提交評(píng)論