黃禮斌基于java網(wǎng)頁瀏覽器的應(yīng)用實現(xiàn)
《黃禮斌基于java網(wǎng)頁瀏覽器的應(yīng)用實現(xiàn)》由會員分享,可在線閱讀,更多相關(guān)《黃禮斌基于java網(wǎng)頁瀏覽器的應(yīng)用實現(xiàn)(19頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 計算機專業(yè)實習(xí)報告 實習(xí)題目: 基于Java的網(wǎng)頁瀏覽器設(shè)計與開發(fā) 姓 名 : 黃禮斌 專 業(yè) : 計算機科學(xué)與技術(shù) 班 級 : 083211 學(xué) 號 : 08321113 指導(dǎo)老師 : 吳建東 2011年11月28日 [實習(xí)時間] 2011年11月21日到11月27日 [實習(xí)地點] 軟件樓601 [實習(xí)目的] 通過理論聯(lián)系實際,鞏固所學(xué)的知識,
2、提高處理實際問題的能力,為順利畢業(yè)進(jìn)行做好充分的準(zhǔn)備,并為自己能順利與社會環(huán)境接軌做準(zhǔn)備。 [實習(xí)內(nèi)容] 基于Java的網(wǎng)頁瀏覽器設(shè)計與開發(fā) 1、程序開發(fā)的基礎(chǔ) 3 1.1 Java技術(shù) 3 1.1.1 Java概述 3 1.1.2 java平臺簡介 3 1.1.3JDIC項目簡介 4 1.2 實現(xiàn)目標(biāo) 4 1.3開發(fā)環(huán)境 5 2、系統(tǒng)的總體分析與設(shè)計 6 2.1 需求分析 6 2.2 系統(tǒng)結(jié)構(gòu)與設(shè)計分析 6 2.2.1 響應(yīng)模式 6 2.2.2 結(jié)構(gòu)分析 6 2.3 功能結(jié)構(gòu)圖 7 3、系統(tǒng)功能與實現(xiàn) 8 3.1 核心技術(shù)
3、8 3.1.1 JDIC項目實現(xiàn)瀏覽器組件 8 3.1.2 收藏夾的保存與裝載 8 3.1.3阻止IE打開彈出窗口 9 3.2菜單欄的實現(xiàn) 9 3.2.1 文件菜單 9 3.2.2 轉(zhuǎn)到菜單 9 3.2.3 調(diào)整菜單 10 3.3 工具欄的實現(xiàn) 10 3.4 地址欄的實現(xiàn) 11 3.5 瀏覽器選項卡的實現(xiàn) 12 3.5.1 繼承擴展瀏覽器組件 12 3.5.2 編寫瀏覽器面板 13 3.5.3 編寫瀏覽器選項卡面板 13 3.5.4編寫瀏覽器組件監(jiān)聽器 13 3.6 收藏夾的實現(xiàn) 13 3.6.1 添加到收藏夾 13 3.6.2 整理收藏夾 14 4、 測
4、試 15 4.1 測試與調(diào)試的基本概念 15 4.2 測試時間 15 4.3 軟件測試的內(nèi)容 16 5、實習(xí)體會 17 1、程序開發(fā)的基礎(chǔ) 1.1 Java技術(shù) 1.1.1 Java概述 Java是一個廣泛使用的編程語言,它基于Java虛擬機技術(shù),從而實現(xiàn)跨平臺。它簡單,面向?qū)ο?不依賴與機器的結(jié)構(gòu),具有可移植性,安全性,并且提供了并發(fā)的機制,具有很高的性能。其次,它最大限度的利用了網(wǎng)絡(luò),Java的小應(yīng)用程序(applet)可在網(wǎng)絡(luò)上傳輸而不受CPU和環(huán)境的限制,另外,Java還提供了豐富的類庫,使程序設(shè)計者可以很方便地建立自己的系統(tǒng)。 Java平臺是一種純軟件平臺,它
5、有三個版本Java SE、JavaEE、Java ME。 JavaSE允許開發(fā)和部署在桌面、服務(wù)器、嵌入式環(huán)境和實時環(huán)境中使用的Java 應(yīng)用程序。Java SE還包含了支持Java Web服務(wù)開發(fā)的類,并為Java EE這個版本提供基礎(chǔ)。JavaEE下有很多流行的開發(fā)框架,像Struts、Spring、Hibernate這種流行的所謂SSH組合等。JavaME應(yīng)用領(lǐng)域像各種移動設(shè)備和嵌入式設(shè)備,比如:手機、PDA、電視機頂盒和打印機。 1.1.2 java平臺簡介 Java平臺版本 Java平臺版本主要有:J2EE(企業(yè)版本)、J2SE(標(biāo)準(zhǔn)版本)、J2ME(迷你版本)。這三個版
6、本有不同的用途,J2EE主要用于分布式的網(wǎng)絡(luò)程序的開發(fā),如電子商務(wù)網(wǎng)站和ERP系統(tǒng);J2SE主要用于桌面應(yīng)用軟件的編程;J2ME主要應(yīng)用于嵌入是系統(tǒng)開發(fā),如手機和PDA的編程。 Java平臺的組成 Java平臺主要是由一個compiler(編譯器),一個運行環(huán)境(runtime environment),和一個核心的API組成。 1、JVM(Java虛擬機):Java程序并不是直接在本地機器的操作系統(tǒng)上執(zhí)行,而是通過JVM解釋成本地的機器語言,其優(yōu)點是可以保證Java代碼在Windows、Linux、Solaris等操作系統(tǒng)上的移植性,其代價是執(zhí)行速度比C代碼要慢??紤]
7、到軟件越來越龐大,而計算機硬件性能越來越快,而且WEB應(yīng)用的發(fā)展,其代價是可接受的。 2、JDK(Java Development Kit):Java平臺開發(fā)包;JSDK(Java 2 Software Development Kit):Java 2平臺開發(fā)包。目前普遍采用J2SDK。 3、JRE(Java Runtime Environment):Java運行環(huán)境,一般情況下已集成到J2SDK中,但如果用戶只是執(zhí)行Java程序,而不進(jìn)行Java代碼的開發(fā),則只需安裝JRE。 Java環(huán)境變量的設(shè)置 安裝完J2SDK之后,需要設(shè)置環(huán)境變量,方法如下:控制面板
8、 -〉高級設(shè)置 -〉環(huán)境變量 -〉系統(tǒng)變量 -〉path里添加一個路徑。這個路徑是安裝J2SDK的bin文件夾的路徑。 1.1.3JDIC項目簡介 JDesktop Integration Components,或JDIC,是一個給Java開發(fā)人員提供通過交差平臺API存取本地特性的包羅萬象的項目。該項目由Sun的Desktop組啟動,目的是讓Java應(yīng)用能更好地和它們所運行的桌面環(huán)境集成。為了能從開發(fā)人員那里得到想要的特性的快速反饋,他們將JDIC做成了開源項目。盡管目前沒有計劃,但JDIC團隊正考慮把JDIC的特征加入Java核心類庫的未來版本中去。 JDIC分為五個部分和
9、一個孵化中的項目: 桌面:為了打開、編輯和用email郵寄文件來打開桌面程序; 文件類型:設(shè)置桌面文件類型關(guān)聯(lián); 瀏覽器:在AWT畫布上嵌入本地瀏覽器(Internet Explorer或者M(jìn)ozilla); 包裝器:把Java Web Start程序轉(zhuǎn)換成本地安裝程序的命令行工具; 托盤API:支持系統(tǒng)托盤圖標(biāo)和彈出式菜單; lSaverBeans:Java中的系統(tǒng)屏幕保護; 1.2 實現(xiàn)目標(biāo) 本項目是網(wǎng)頁瀏覽器,包括五個部分,菜單欄模塊,工具欄模塊,地址欄模塊,瀏覽器選項卡模塊以及收藏夾模塊。 1菜單欄模塊內(nèi)容包括文件菜單,轉(zhuǎn)到菜單,調(diào)整菜單和收藏夾菜單。主要是通過
10、菜單欄的操作實現(xiàn)網(wǎng)頁的前進(jìn),后退,停止,刷新和轉(zhuǎn)到功能,還包括收藏夾的新建與整理。 2。.工具欄的功能則是實現(xiàn)常用的操作,通過點擊工具圖標(biāo)來實現(xiàn)菜單欄中所有的操作。 3.地址欄模塊則用來接收用戶輸入的網(wǎng)站地址,然后將該地址傳給瀏覽器組件,呈現(xiàn)指定的網(wǎng)頁。 4.瀏覽器選項卡模塊實現(xiàn)在同一個窗體中顯示多個頁面。 5.收藏夾模塊是本設(shè)計中最重要的一部分,包括整理收藏夾菜單和添加收藏夾菜單,可在程序運行的過程中根據(jù)用戶保存的內(nèi)容,填充收藏夾的內(nèi)容,且在網(wǎng)頁瀏覽器重新啟動的情況下依舊保留有上次保存的網(wǎng)頁。 1.3開發(fā)環(huán)境 以下版本是本次使用: 操作系統(tǒng): Windows XP Jav
11、a虛擬機: JDK1.6 開發(fā)工具: MyEclipse5.5 2、系統(tǒng)的總體分析與設(shè)計 2.1 需求分析 本模塊要實現(xiàn)的功能模塊包括:菜單欄模塊,工具欄模塊,地址欄模塊,瀏覽器選項卡模塊以及收藏夾模塊。 1.菜單欄模塊內(nèi)容包括文件菜單,轉(zhuǎn)到菜單,調(diào)整菜單和收藏夾菜單。主要是通過菜單欄的操作實現(xiàn)網(wǎng)頁的前進(jìn),后退,停止,刷新和轉(zhuǎn)到功能,還包括收藏夾的新建與整理。 2.工具欄的功能則是實現(xiàn)常用的操作,通過點擊工具圖標(biāo)來實現(xiàn)菜單欄中所有的操作。 3.地址欄模塊則用來接收用戶輸入的網(wǎng)站地址,然后將該地址傳給瀏覽器組件,呈現(xiàn)指定的網(wǎng)頁。 4.瀏覽器選項卡模塊實現(xiàn)在同一個窗體中顯示多個
12、頁面。 5.收藏夾模塊是本設(shè)計中最重要的一部分,包括整理收藏夾菜單和添加收藏夾菜單,可在程序運行的過程中根據(jù)用戶保存的內(nèi)容,填充收藏夾的內(nèi)容,且在網(wǎng)頁瀏覽器重新啟動的情況下依舊保留有上次保存的網(wǎng)頁。 2.2 系統(tǒng)結(jié)構(gòu)與設(shè)計分析 2.2.1 響應(yīng)模式 用戶在地址欄輸入一個URL,單擊“轉(zhuǎn)到”按鈕,請求發(fā)出,瀏覽器內(nèi)核進(jìn)行讀取識別,并通過特征提取模塊進(jìn)行特征比對,按照網(wǎng)頁分類算法對網(wǎng)頁類別庫中的網(wǎng)頁中符合的網(wǎng)頁提取出來返回給用戶。 圖1 響應(yīng)模式 2.2.2 結(jié)構(gòu)分析 本模塊設(shè)計的瀏覽器,有菜單欄,工具欄,地址欄,頁面顯示區(qū),收藏夾。 它的主要特點有: 1基于IE內(nèi)核,采用多
13、窗口多線程工作方式,節(jié)約了系統(tǒng)資源,穩(wěn)定性好,不會像那樣因打開多窗口而使系統(tǒng)速度緩慢,甚至出現(xiàn)“程序沒有相應(yīng)“等現(xiàn)象。 2.對網(wǎng)頁自動分類,這是它的特點。當(dāng)用戶在瀏覽網(wǎng)頁進(jìn)入一個從未到過的網(wǎng)站時,很容易導(dǎo)致迷航,用戶先閱讀網(wǎng)頁才能判定該網(wǎng)頁是否是自己所感興趣的網(wǎng)頁。這樣,用戶把大量時間和精力花費在不必要的網(wǎng)頁上,分散了用戶的注意力。 3. 提供類別導(dǎo)航功能。它將已分類的網(wǎng)站地址置入各類別中,用戶可以根據(jù)自己感興趣的主題進(jìn)行訪問和瀏覽。類別的跟新,修改,添加等維護一般由系統(tǒng)進(jìn)行,也可由用戶自己手動維護。系統(tǒng)可以根據(jù)類別的更改而自行調(diào)整系統(tǒng)的分類結(jié)果。 2.3 功能結(jié)構(gòu)圖 以下是本模塊的
14、功能結(jié)構(gòu)圖: 圖2 功能結(jié)構(gòu) 3、系統(tǒng)功能與實現(xiàn) 瀏覽器的窗體是程序的主界面,它包括瀏覽指定的網(wǎng)站,收藏網(wǎng)站信息等業(yè)務(wù)。主要由菜單欄,工具欄,地址欄,瀏覽器選項卡和狀態(tài)欄組成。 3.1 核心技術(shù) 3.1.1 JDIC項目實現(xiàn)瀏覽器組件 瀏覽器組件API可以讓你訪問幾個瀏覽器事件以及在歷史記錄上的控制(向前,后退,刷新)。未來修訂的API版本希望能提供更多存取瀏覽器和任意裝載的文檔的功能。 在你的應(yīng)用里使用瀏覽器組件實在是非常容易: import org.jdesktop.jdic.browser.*; import .*; import javax.
15、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);
16、 frame.getContentPane().add(browser); frame.pack(); frame.setSize(500,500); frame.setVisible(true); } } 正如你所看到的那樣,WebBrowser對象僅僅是一個你可以把它放入一個標(biāo)準(zhǔn)的Jframe中的AWT組件。Main方法的第一行創(chuàng)建了一個新的WebBrowser,第二行設(shè)置了你想顯示的URL。其他的代碼創(chuàng)建了一個frame,把瀏覽器加入其中,并使得frame可見 記住WebBrowser是個本地AWT
17、組件,因此你可能陷入與Swing結(jié)合的困境。混合它們的兩個規(guī)則是 1)不要讓Swing和AWT組件重疊和 2)在你的菜單上調(diào)用setLightWeightPopupEnabled(false)否則它們將消失在瀏覽器組件后邊。 3.1.2 收藏夾的保存與裝載 收藏夾模塊的功能可以將正在瀏覽的網(wǎng)址添加到收藏夾中,并且提供分類,通常的做法是將收藏夾的內(nèi)容存放在集合類中,如果程序關(guān)閉,收藏夾的內(nèi)容和分類將丟失,因為它們沒有被持久化。 將收藏夾持久化的方法有兩種: 持久化到數(shù)據(jù)庫 可以將收藏夾內(nèi)容全部保存到數(shù)據(jù)庫中,在程序關(guān)閉時,收藏夾的內(nèi)容保存在數(shù)據(jù)庫而不在內(nèi)存中,這樣可
18、以避免數(shù)據(jù)丟失,在程序下次啟動的時候,可以從數(shù)據(jù)庫中讀取收藏夾內(nèi)容從新顯示 持久化到文件中 另一種方法將收藏夾的內(nèi)容保存到一個數(shù)據(jù)文件中,例如”favorite.data”,這種方法保存收藏夾數(shù)據(jù)可以節(jié)省訪問數(shù)據(jù)庫的開銷,也可以隨瀏覽器模塊一同發(fā)布,既方便又節(jié)省資源。 3.1.3阻止IE打開彈出窗口 使用WebBrowser組件編寫的瀏覽器模塊,可以在本窗口中瀏覽各種信息,可以通過超級鏈接訪問其他網(wǎng)頁,如果某個超級連接要在新的窗體中打開網(wǎng)頁,那么這個網(wǎng)頁會默認(rèn)使用IE或操作系統(tǒng)默認(rèn)的瀏覽器打開,這就破壞了模塊的外觀,使本模塊處于可有可無的狀態(tài)。因此必須攔截這些需要在新窗體顯示的網(wǎng)
19、頁信息,本模塊繼承了WebBrowser組件實現(xiàn)了瀏覽器組件的Browser類,它從寫了父類的willOpenWindow()方法,在有需要顯示在新窗體的網(wǎng)頁信息時,該方法會創(chuàng)建新的選項卡顯示這個網(wǎng)頁。 3.2菜單欄的實現(xiàn) 瀏覽器模塊的菜單欄幾乎容納了所有功能的操作連接,它用于整個瀏覽器模塊的導(dǎo)航,快速方便的執(zhí)行瀏覽操作,例如前進(jìn),后退,刷新等。 3.2.1 文件菜單 文件菜單包括”設(shè)置主頁”,”打印”,”退出”3個菜單項,其中”設(shè)置主頁”將用戶輸入的網(wǎng)址信息創(chuàng)建為URL對象。如果創(chuàng)建URL對象時拋出異常,說明URL格式不標(biāo)準(zhǔn),將以對話框的形式提示用戶URL格式非法,
20、當(dāng)輸入格式正確時,程序?qū)RL對象序列化到收藏夾得數(shù)據(jù)文件中。 單擊打印菜單時,將調(diào)用工具欄上”打印”按鈕的doClick()方法,執(zhí)行按鈕的鼠標(biāo)單擊操作,程序會執(zhí)行按鈕的時間處理代碼。 單擊菜單欄的“退出”菜單項時,菜單項的事件監(jiān)聽器將調(diào)用業(yè)務(wù)方法完成退出命令。在業(yè)務(wù)方法中執(zhí)行了System類的exit()方法退出Java虛擬機,從而終止程序運行。 3.2.2 轉(zhuǎn)到菜單 轉(zhuǎn)到菜單包含了瀏覽器的控制命令,這些命令包括”主頁”,”前進(jìn)””后退””停止””刷新”。這些控制命令,在菜單欄中也提供了相應(yīng)的操作按鈕,為減少代碼重復(fù),本模塊在這些菜單欄的事件處理中直接調(diào)用工具欄相應(yīng)按鈕的d
21、oClick()方法,執(zhí)行按鈕的業(yè)務(wù)代碼。 // 停止菜單項的業(yè)務(wù) private void stopMenuItemActionPerformed(java.awt.event.ActionEvent evt) { stopButton.doClick(); // 執(zhí)行停止按鈕的單擊方法 } // 刷新菜單項的業(yè)務(wù)方法 private void refreshMenuItemActionPerformed(java.awt.event.ActionEvent evt) { refreshButton.doClick(); // 執(zhí)行刷新按鈕的單擊方法 } // 后退菜單
22、項的業(yè)務(wù)方法 private void backMenuItemActionPerformed(java.awt.event.ActionEvent evt) { backButton.doClick(); // 執(zhí)行后退按鈕的單擊方法 } // 前進(jìn)菜單項的業(yè)務(wù)方法 private void forwardMenuItemActionPerformed(java.awt.event.ActionEvent evt) { forwardButton.doClick(); // 執(zhí)行前進(jìn)按鈕的單擊方法 } // 打印菜單項的業(yè)務(wù)方法 private void printMe
23、nuItemActionPerformed(java.awt.event.ActionEvent evt) { printButton.doClick(); // 執(zhí)行主頁按鈕的單擊方法 } 3.2.3 調(diào)整菜單 本模塊的網(wǎng)頁瀏覽器部分布置在一個選項卡組件中,選項卡的標(biāo)簽名稱為網(wǎng)頁的標(biāo)題命名,這樣用戶可以創(chuàng)建多個選項卡瀏覽更多的網(wǎng)站。 3.3 工具欄的實現(xiàn) 工具欄用于執(zhí)行常用的操作,網(wǎng)頁瀏覽器模塊的控制命令使用最頻繁,因此將瀏覽器的控制命令提取到工具欄中。工具欄上的每個按鈕都設(shè)置了文本提示,每個按鈕都添加了單獨的事件監(jiān)聽器,在不同的事件監(jiān)聽器中調(diào)用處理該按鈕業(yè)務(wù)的
24、方法。 編寫各個按鈕的事物處理方法,這些業(yè)務(wù)處理方法被不同按鈕的事件監(jiān)聽器調(diào)用。瀏覽器的控制按鈕的業(yè)務(wù)邏輯,基本通過調(diào)用Browser瀏覽器組件的方法實現(xiàn),例如print()方法可以執(zhí)行打印任務(wù), // 后退按鈕的事件處理方法 private void backButtonActionPerformed(java.awt.event.ActionEvent evt) { Browser browser = getSelBrowser(); if (browser.isBackEnabled()) { // 如果后退操作可行 browser.back(); // 執(zhí)行后退
25、 } } // 停止按鈕的事件處理方法 private void stopButtonActionPerformed(java.awt.event.ActionEvent evt) { Browser browser = getSelBrowser(); browser.stop(); // 執(zhí)行停止操作 } // 前進(jìn)按鈕的事件處理方法 private void forwardButtonActionPerformed(java.awt.event.ActionEvent evt) { Browser browser = getSelBrowser(); if (b
26、rowser.isForwardEnabled()) { // 如果前進(jìn)操作可行 browser.forward(); // 執(zhí)行前進(jìn)操作 } } // 刷新按鈕的事件處理方法 private void refreshButtonActionPerformed(java.awt.event.ActionEvent evt) { Browser browser = getSelBrowser(); browser.refresh(); // 執(zhí)行刷新操作 } // 主頁按鈕的事件處理方法 private void homePageButtonActionPerform
27、ed(java.awt.event.ActionEvent evt) { Browser browser = getSelBrowser(); browser.setURL(homePage); // 設(shè)置瀏覽器當(dāng)前網(wǎng)址 } 3.4 地址欄的實現(xiàn) 地址欄是網(wǎng)頁瀏覽器的重要功能,它接收用戶輸入的將要訪問的網(wǎng)站地址,然后將該地址傳送給瀏覽器組件,呈現(xiàn)指定的網(wǎng)頁內(nèi)容。網(wǎng)頁瀏覽器模塊的地址欄包含輸入網(wǎng)站URL地址的文本框和一個執(zhí)行瀏覽業(yè)務(wù)的“轉(zhuǎn)到”按鈕。當(dāng)用戶在地址欄的地址文本框輸入網(wǎng)站地址并單擊右側(cè)的“轉(zhuǎn)到”按鈕時,它下面的瀏覽器選項卡將創(chuàng)建一個新的選項卡,并在選項卡中放置一個瀏覽器組件
28、顯示新的網(wǎng)頁內(nèi)容。 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); goButt
29、on.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); goButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); // 添加轉(zhuǎn)到按鈕的事件監(jiān)聽器,當(dāng)單擊轉(zhuǎn)到按鈕時,執(zhí)行業(yè)務(wù)方法 goButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { go
30、ButtonActionPerformed(evt); // 調(diào)用轉(zhuǎn)到按鈕的業(yè)務(wù)方法 } }); addressBar.add(goButton, BorderLayout.EAST); // 添加轉(zhuǎn)到按鈕到地址欄 3.5 瀏覽器選項卡的實現(xiàn) 以前的瀏覽器都是單個窗體的軟件,在每次需要同時瀏覽不同的網(wǎng)站或者在新窗口顯示網(wǎng)頁的情況下,都需要重新啟動或彈出一個瀏覽器軟件來顯示指定的網(wǎng)頁內(nèi)容。因此本模塊使用瀏覽器面板作為所有瀏覽器組件的容器: 3.5.1 繼承擴展瀏覽器組件 由于網(wǎng)頁的超級鏈接或JavaScript腳本可以在新的瀏覽器窗口中顯示內(nèi)容,而新建立
31、的瀏覽器窗體會使用默認(rèn)的瀏覽器打開網(wǎng)頁,因此本模塊必須繼承WebBrowser類來編寫自己的瀏覽器組件類Browser。 這樣就可以重寫父類的willOpenWindow()方法攔截彈出新窗體顯示網(wǎng)頁內(nèi)容的事件,然后再該方法中使用自己的事件,在選項卡面板中創(chuàng)建瀏覽器組件顯示網(wǎng)頁。 3.5.2 編寫瀏覽器面板 將擴展的Browser瀏覽器組件封裝在一個面板中實現(xiàn)瀏覽器面板,這個面板將被添加到存放瀏覽器的選項卡面板中.瀏覽器面板添加了Browser瀏覽器組件的實例對象,并且為瀏覽器組件添加了事件監(jiān)聽器。 3.5.3 編寫瀏覽器選項卡面板 本模塊的選項卡面板用于存放瀏覽器組
32、件,使瀏覽器支持選項卡界面創(chuàng)建選項卡時為面板添加鼠標(biāo)單擊事件,在用戶單擊選項卡的標(biāo)簽時執(zhí)行業(yè)務(wù)方法。另外,還設(shè)置了選項卡面板的模型對象,包括選項卡的選擇事件的處理方法。CreateBrowser()和getSelBrowser()方法分別用于在選項卡面板創(chuàng)建瀏覽器面板和獲取當(dāng)前選擇的面板中的瀏覽器組件實例。 本模塊使用JDIC類庫來實現(xiàn)瀏覽器界面,該類庫可以從 3.5.4編寫瀏覽器組件監(jiān)聽器 在編寫瀏覽器面板組件時,在面板中創(chuàng)建了瀏覽器組件,同時也為該組件添加了事件監(jiān)聽器。 3.6 收藏夾的實現(xiàn) 收藏夾是瀏覽器不可缺少的功能,它記錄上網(wǎng)時常用的,經(jīng)典的網(wǎng)站地址。 3.6.1
33、 添加到收藏夾 在瀏覽器模塊的主窗體上單擊”收藏夾”/”添加到收藏夾”菜單項,將啟動添加收藏夾功能,該功能能將當(dāng)前瀏覽器訪問的網(wǎng)站地址添加到收藏夾中,日后可以從收藏夾中直接選擇瀏覽器指定的網(wǎng)址。 添加收藏夾功能的實現(xiàn)步驟如下: 1 編寫”添加到收藏夾”菜單項的業(yè)務(wù)代碼,這個方法將有菜單項的事件監(jiān)聽調(diào)用,方法內(nèi)部獲取了選項卡面板當(dāng)前的選項卡索引,然后使用所有獲取選項卡的標(biāo)題,使用該標(biāo)題創(chuàng)建了”添加到收藏夾”對話框的實例,把其余的工作交由該對話框?qū)崿F(xiàn)。 2在”添加到收藏夾”對話框中編寫初始化收藏夾樹組件的方法,該方法將在對話框的構(gòu)造方法中被調(diào)用,它將調(diào)用loadMenu()方法添加收藏夾菜
34、單的內(nèi)容。 3編寫裝載收藏夾菜單內(nèi)容的loadMenu()方法,該方法使用遞歸算法遍歷收藏夾的數(shù)據(jù)集合對象,從這個集合對象中裝載收藏夾的所有內(nèi)容到”收藏夾”菜單中。 4 編寫”確定”按鈕的業(yè)務(wù)處理方法,該方法在用戶輸入名稱標(biāo)識并單擊按鈕時被”確定”按鈕的事件監(jiān)聽器調(diào)用,它將完成從讀取用戶輸入名稱標(biāo)識到保存網(wǎng)站地址到收藏夾的全過程。 3.6.2 整理收藏夾 整理收藏夾的實現(xiàn)比較復(fù)雜,它的樹組件要顯示的收藏夾內(nèi)容包括文件夾和收藏的網(wǎng)址信息,而且可以對這些信息進(jìn)行維護和移動操作。其中包括”創(chuàng)建文件夾”,”重命名”,”刪除”操作。 實現(xiàn)過程如下: 1 編寫”整理收藏夾”菜單項
35、的業(yè)務(wù)處理方法,該方法將在單擊該菜單時由菜單項的時間監(jiān)聽器調(diào)用,方法的實現(xiàn)非常簡單,因為所有業(yè)務(wù)都由”整理收藏夾”對話框完成。 2 編寫”整理收藏夾”對話框的構(gòu)造方法,在構(gòu)造方法中分別調(diào)用初始化對話框界面的方法和初始化收藏夾樹組件的方法。 3編寫初始化樹組件的方法,該方法將調(diào)用loadFavoriteNode()方法裝載樹節(jié)點內(nèi)容, 4 編寫裝載樹組件節(jié)點內(nèi)容的方法,該方法使用了遞歸方法,原因是要遍歷的內(nèi)容包括子節(jié)點的嵌套。 6 編寫”重命名”按鈕的事件處理方法,作為維護操作重命名是必不可少的,特別是收藏夾中的文件夾。如果沒有重命名,則需要刪除文件,重新建立;如果文件夾中包含大量的收藏
36、信息,會損失很多資源。單擊”重命名”按鈕時,將在事件監(jiān)聽器中調(diào)用該方法完成命名操作。 7 編寫”刪除”按鈕的事件處理方法,該方法將在”刪除”按鈕的事件監(jiān)聽器中被調(diào)用。 8 編寫”移動到”按鈕的事件處理方法,該方法用于移動收藏選項到其他文件夾中,其按鈕的事件監(jiān)聽器將調(diào)用該方法。 4、 測試 4.1 測試與調(diào)試的基本概念 軟件測試是整個系統(tǒng)開發(fā)過程中一個重要環(huán)節(jié),是成功開發(fā)本系統(tǒng)的重要保證。軟件測試階段的主要任務(wù)是發(fā)現(xiàn)并排除在分析、設(shè)計、編碼各階段中產(chǎn)生的各種類型的錯誤,以得到可使用的軟件系統(tǒng)。 常用的軟件測試方法有兩大類:靜態(tài)測試方法和動態(tài)測試方法。 靜態(tài)測試方法是程序遠(yuǎn)普遍
37、采用的一種方法,其內(nèi)容主要是通過人工模擬軟件系統(tǒng)的執(zhí)行方式,以代碼會審、走查、辦公室檢查的形式分析或核查系統(tǒng)的功能實現(xiàn)、編碼過程的正確性。動態(tài)測試方法是通過輸入一組預(yù)先按照一定的測試準(zhǔn)則構(gòu)造的實例數(shù)據(jù)來動態(tài)運行程序,而達(dá)到發(fā)現(xiàn)程序錯誤的過程。 按照通常的軟件系統(tǒng)測試,可以分別進(jìn)行單元測試、集成測試、確認(rèn)測試、系統(tǒng)測試,最后進(jìn)行驗收測試,即由用戶通過試用系統(tǒng)而進(jìn)行測試,檢驗系統(tǒng)的可用性及與用戶配合的程度。 調(diào)試是軟件開發(fā)過程中最艱巨的腦力勞動,調(diào)試開始時,軟件開發(fā)者僅僅面對著錯誤的征兆,然而在問題的外部現(xiàn)象和內(nèi)在原因之間往往并沒有明顯的聯(lián)系,在組成程序的密密麻麻的元素中,每一個都可能是錯誤的
38、根源。如何能在浩如煙海的程序元素中找到有錯誤的那個(或幾個)元素,這是調(diào)試過程中最關(guān)鍵的技術(shù)問題。本設(shè)計中調(diào)試的方法主要是設(shè)置斷點跟蹤。使用斷點跟蹤可以找到程序的出錯位置,縮小查找錯誤的范圍,提高調(diào)試的效率。調(diào)試的任務(wù)是及時改正測試過程中發(fā)現(xiàn)的軟件錯誤。具體地說,調(diào)試過程由兩個步驟組成,它從表示程序中存在錯誤的某跡象開始,首先確定錯誤的準(zhǔn)確位置,也就是找出哪個模塊或哪個語句引起的錯誤。然后仔細(xì)研究推斷代碼以確定問題的原因,并設(shè)法改正。現(xiàn)階段己研究出一些幫助調(diào)試的技術(shù),主要有輸出存儲器內(nèi)容、打印語句和自動工具。 4.2 測試時間 本系統(tǒng)的測試分為以下幾個階段進(jìn)行: 第一階段: 根據(jù)需求分析
39、劃定軟件中要測試的功能和性能的范圍,確定測試的內(nèi)容。 第二階段: 分模塊對系統(tǒng)中的各模塊進(jìn)行測試,對需求分析中各模塊的功能和性能及用戶的特殊需求進(jìn)行測試,記下各模塊的所有的問題,及時解決。 第三階段: 在模塊測試的基礎(chǔ)上將各模塊拼接進(jìn)行整體功能和性能的測試。 第四階段: 綜合測試。 圖3 程序運行示例 4.3 軟件測試的內(nèi)容 分模塊對其進(jìn)行測試: 1菜單欄模塊:能通過菜單欄的操作實現(xiàn)網(wǎng)頁的前進(jìn),后退,停止,刷新和轉(zhuǎn)到功能,收藏夾的新建與整理。 2工具欄模塊:能通過點擊工具圖標(biāo)來實現(xiàn)一些常用的操作。 3地址欄模塊:用來接收用戶輸入的網(wǎng)站地址,然后將該地址傳給瀏覽器組件,呈現(xiàn)
40、指定的網(wǎng)頁。 4瀏覽器選項卡模塊:實現(xiàn)在同一個窗體中顯示多個頁面。 5收藏夾模塊:能對收藏夾進(jìn)行添加網(wǎng)頁和整理操作。 5、實習(xí)體會 通過本次實習(xí)——網(wǎng)頁瀏覽器的實現(xiàn),使得我對現(xiàn)今瀏覽器的發(fā)展背景及現(xiàn)狀有了更全面深入的認(rèn)識,從第一款瀏覽器Mosaic的發(fā)布到現(xiàn)在IE,F(xiàn)irefox,遨游,世界之窗的普及,都給予了我們生活和學(xué)習(xí)的方式的另一種詮釋。它的出現(xiàn)使得我們生活變得簡單,共享和隨性,而我們的學(xué)習(xí)和 工作也不再受到時間和地域的限制。 可以說,在剛開始的前期資料查詢和總體功能的設(shè)計分析階段,難題和困難就一直伴隨而來,一開始是腦海中沒有模塊的基本雛形。然后才去查詢關(guān)于網(wǎng)頁瀏覽
41、器的資料和書籍,通過《windows 程序設(shè)計》和《Thinking in Java》兩本書的學(xué)習(xí)和借鑒,然后才慢慢的有了模塊的基礎(chǔ)功能和模型,再往后就是模塊 功能的結(jié)構(gòu)分析以及關(guān)鍵技術(shù)的整理,關(guān)于模塊的功能,本來是想呈現(xiàn)IE風(fēng)格的瀏覽器界面,但在隨后的程序整理階段,發(fā)現(xiàn)每打開一個網(wǎng)頁,就彈出一個IE窗口,使得桌面有點繁雜,便想到了實現(xiàn)類似與遨游的一個窗口實現(xiàn)多個網(wǎng)頁的呈現(xiàn)。這其中便有了瀏覽器選項卡的開發(fā)與實現(xiàn),通過《Java組件設(shè)計》的學(xué)習(xí),了解到關(guān)于JDIC項目關(guān)于瀏覽器選項卡的實現(xiàn),通過下載JDIC類庫,實現(xiàn)了瀏覽器選項卡,從而達(dá)成了一個窗口顯示多個網(wǎng)頁的目的。在隨后的編程過程中,又有了
42、收藏夾的難題。在最初的實現(xiàn)中,每次當(dāng)關(guān)閉窗口時,保存在收藏夾中的網(wǎng)友與分類也隨之消失,下次再打開時上次保存的內(nèi)容已不復(fù)存在,這就沒有實現(xiàn)收藏夾的基本功能。后面才知道是收藏夾沒有被持久化,于是查詢相關(guān)資料得出將收藏夾持久化的方法,最好的方法是將收藏夾集合序列化到數(shù)據(jù)文件中,這才解決了收藏夾的問題 東華理工學(xué)院長江學(xué)院 實習(xí)評分表 姓名: 黃禮斌 班級: 083211 學(xué)號:08321113 實習(xí)題目:基于Java的網(wǎng)頁瀏覽器設(shè)計與開發(fā) 項目內(nèi)容 滿分 實 評 選 題 能結(jié)合所學(xué)課程知識、有一定的能力訓(xùn)練。符合選題要求 (5人一題)
43、 10 工作量適中,難易度合理 10 能 力 水 平 能熟練應(yīng)用所學(xué)知識,有一定查閱文獻(xiàn)及運用文獻(xiàn)資料能力 10 理論依據(jù)充分,數(shù)據(jù)準(zhǔn)確,公式推導(dǎo)正確 10 能應(yīng)用計算機軟件進(jìn)行編程、資料搜集錄入、加工、排版、制圖等 10 能體現(xiàn)創(chuàng)造性思維,或有獨特見解 10 成 果 質(zhì) 量 總體設(shè)計正確、合理,各項技術(shù)指標(biāo)符合要求。 10 說明書綜述簡練完整,概念清楚、立論正確、技術(shù)用語準(zhǔn)確、結(jié)論嚴(yán)謹(jǐn)合理;分析處理科學(xué)、條理分明、語言流暢、結(jié)構(gòu)嚴(yán)謹(jǐn)、版面清晰 10 設(shè)計說明書欄目齊全、合理,符號統(tǒng)一、編號齊全?!「袷?、繪圖、表格、插圖等規(guī)范準(zhǔn)確,符合國家標(biāo)準(zhǔn) 10 有一定篇幅,字符數(shù)不少于5000 10 總 分 100 指導(dǎo)教師評語: 指導(dǎo)教師簽名: 年 月 日
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 外匯的概念
- 六級上《能量與太陽》-教科版課件
- 六年級語文下冊第五單元16表里的生物作業(yè)課件新人教版
- 尺有所短寸有所長課件
- 手衛(wèi)生知識培訓(xùn)課件
- 攝像頭成像質(zhì)量評價及方案課件
- 六年級科學(xué)上冊-晝夜交替-(1)ppt課件-鄂教版
- 人體解剖學(xué)與組織胚胎學(xué)
- 任務(wù)型外語教學(xué)原則在教材編寫中的體現(xiàn)培訓(xùn)ppt課件
- 人教部編版歷史八年級下冊第8課經(jīng)濟體制改革課件
- 人教版八年級道德與法治第一單元1.2在社會中成長ppt課件
- 關(guān)鍵績效指標(biāo)KPI和平衡計分卡資料課件
- 頑固性氣胸的治療課件
- 化合價與化學(xué)式課件
- 議論文寫作思維訓(xùn)練之——辯證思維課件