欧美精品一二区,性欧美一级,国产免费一区成人漫画,草久久久久,欧美性猛交ⅹxxx乱大交免费,欧美精品另类,香蕉视频免费播放

網頁瀏覽器--Java課程設計

上傳人:沈*** 文檔編號:87399091 上傳時間:2022-05-09 格式:DOC 頁數:27 大?。?17.50KB
收藏 版權申訴 舉報 下載
網頁瀏覽器--Java課程設計_第1頁
第1頁 / 共27頁
網頁瀏覽器--Java課程設計_第2頁
第2頁 / 共27頁
網頁瀏覽器--Java課程設計_第3頁
第3頁 / 共27頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《網頁瀏覽器--Java課程設計》由會員分享,可在線閱讀,更多相關《網頁瀏覽器--Java課程設計(27頁珍藏版)》請在裝配圖網上搜索。

1、word 《 面向對象程序設計》 課程設計報告 題 目:網頁瀏覽器設計 院 〔系〕: 信息科學與工程學院 專業(yè)班級: 計算機科學與技術1201班 學生:程偉 學 號: 指導教師: 吳奕 20 14 年 12 月 29 日至20 15 年 1 月 9 日 華中科技大學武昌分校制 面向對象程序設計 課程設計任務書 一、設計〔調查報告/論文〕題目 瀏覽器設計 二、設計〔調查報告/論文〕主要容 容: 該瀏覽器

2、要一個圖形界面操作,設計的功能類似于WINDOWS操作系統(tǒng)中的IE瀏覽器。系統(tǒng)使用Eclipse與工具,操作系統(tǒng)為WINDOWS,采用面向對象方法完成,包括需求與總體設計、詳細設計、編碼實現、系統(tǒng)測試。在URL地址欄中輸入網址,點擊轉向按鈕,該瀏覽器可以自動轉向所指地址頁面,顯示網頁信息,實現瀏覽器的根本功能,并可實現查看和保存訪問頁面的HTML源代碼。 根本功能與要求: 以下界面實現局部 ①實現生成網頁瀏覽器的主體框架 ②實現框架上各個組件的時間監(jiān)聽 ③圖形界面的設計 ④組件監(jiān)聽接口的實現 以下功能實現局部 ①實現查看源文件的主體框架。 ②實現源文件的保存功能

3、,包括另存為即可以將正在訪問的網頁進展保存。 ③前進即訪問現有頁面的上一個頁面;后退即訪問現有頁面的下一個頁面。 ④查看源文件功能即查看訪問頁面的HTML源文件代碼。 三、原始資料 1.《面向對象程序設計課程設計》指導書 2.耿祥義.JAVA大學實用教程.:清華大學,2009. 四、要求的設計〔調查/論文〕成果 五、進程安排 布置任務,查找資料、需求分析1天 總體設計1天 詳細設計 編制源程序實現 測試與修改1天 撰寫課設報告2天 六、主要參考資料 [1] 廣彬. Java課程設計案例精編〔第二版〕.:清華大學, 2011. [2] 耿祥義. Java課

4、程設計〔第二版〕.:清華大學, 2008. [3] 耿祥義.JAVA大學實用教程.:清華大學,2009. [4] 鄒林達.國君 Java2程序設計根底.:清華大學,2010. [5] 鄒林達.Java2程序設計根底實驗指導.:清華大學,2010. 指導教師〔簽名〕: 20 年 月 日 目錄 1需求與總體設計1 需求分析1 總體設計思路1 功能圖與類圖2 2詳細設計3 詳細設計思路3 復用組件4 3編碼實現5 4系統(tǒng)運行與測試21 系統(tǒng)測試情況21 排除錯誤的處理24 總結25 27 / 27

5、1需求與總體設計 此網頁瀏覽器的主要功能描述:通過在地址欄里面輸入URL地址,可以訪的 網頁。除此之外,本案例中的網頁瀏覽器還增添了如下幾個功能。 1.另存為:可以將正在訪問的頁面進展保存。 2.前進:訪問現有頁面的上一個頁面。 3.后退:訪問現有頁面的下一個頁面。 4.查看源文件:查看訪問頁面的HTML源文件,并且提供保存功能。 網頁瀏覽器的程序由文件WebBrowser.java與ViewSourceFrame.java兩個文件組成。 1〕WebBrowser,java 該文件包含名為WebBrowser的public類,其主要功能為生成網頁瀏覽器的主體

6、框架,實現框架上各個組件的事件偵聽。主要包括4個模塊:圖形用戶界面的構建:組件監(jiān)聽接口的實現:文件保存功能的實現:查看源代碼框架的生成。 2〕ViewSourceFrame.java 該文件包含名為ViewSourceFrame的類,其主要功能是實現了源文件查看的主體框架,并實現了源文件的保存功能。主要包括兩個模塊:圖形用戶界面的構建:組件監(jiān)聽接口的實現。 2詳細設計 WebBrowser.java文件是網頁瀏覽器的主類文件,生成了網頁瀏覽器的主體框架,并實現框架上各個組件的事件偵聽。 Pubilic class WebBrowser extends JF

7、rame implements HyperlinkListener,ActtionListener //建立主件,包括地址欄、界面、地址欄、菜單組、菜單項、工具欄、工具欄中按鈕組件、存放歷史地址、訪問順序。 public WebBrowser() /*構造函數,圖形化用戶界面*/ public void actionPerformed(ActionEvent e) /*實現監(jiān)聽器接口的actionPerformed函數*/ void saveFile(final String url)//保存文件 void getHtmlSource (String url)//獲得原文件

8、 public void hyperlinkUpdate(HyperlinkEvent e)//實現監(jiān)聽器接口的hyperlinkUpdate函數 public static void main(String[] args)/*生成一個IE對象*/ ViewSourceFrame.java文件的作用是實現網頁瀏覽器中源文件瀏覽的主體框架并提供了源文件的保存功能。 class ViewSourceFrame extends JFrame implements ActionListener//建立主件 public ViewSourceFrame (String htmlSourc

9、e) //構造函數,初始化圖形用戶界面 public void actionPerformed(ActionEvent e)//實現監(jiān)聽器接口的actionPerformed函數 選擇好的容器就是為界面構造一個根本的骨架,然后在其中添加各個組件。 組件復用表: 功能 所復用的組件 菜單組 復用JMenu組件 菜單項 復用JMenuItem組件 工具欄 復用JPanel組件 按鈕 復用utton組件 地址欄 復用JLabel組件 狀態(tài)欄 復用JPanel組件 滾動條 復用scrollPane組件

10、菜單欄 復用JMenuBar組件 組件初始化 bar=new JToolBar (); //建立工具欄用來顯示地址欄 jMenuBar1 = new JMenuBar(); //建立菜單欄 fileMenu = new JMenu ("文件(F)"); //建立菜單組 對各個菜單項進展初始化 saveAsItem = new JMenuItem ("另存為(A)..."); exitItem=new JMenuItem ("退出(I)"); backItem=new JMenuItem ("后退"); forwardItem=new JMenuItem ("前進")

11、; fullscreenItem=new JMenuItem ("全屏(U)"); sourceItem=new JMenuItem ("查看源碼(C)"); reloadItem=new JMenuItem ("刷新(R)"); 工具欄與菜單欄的初始化過程類似。 3編碼實現 源代碼: import java.awt.*; import javax.swing.*; import java.awt.event.*; import javax.swing.event.*; import javax.swing.border.*;

12、 import java.io.*; import .*; import java.util.*; public class WebBrowser extends JFrame implements HyperlinkListener,ActionListener{ //建立工具欄用來顯示地址欄 JToolBar bar=new JToolBar (); //建立網頁顯示界面 JTextField jurl = new JTextField (60); JEditorPane jEditorPane1 = new JE

13、ditorPane (); JScrollPane scrollPane = new JScrollPane (jEditorPane1); JFileChooser chooser=new JFileChooser (); JFileChooser chooser1=new JFileChooser (); String htmlSource; JWindow window = new JWindow (WebBrowser.this); utton button2=new utton ("窗口復原");

14、 Toolkit toolkit = Toolkit.getDefaultToolkit(); //建立菜單欄 JMenuBar jMenuBar1 = new JMenuBar(); //建立菜單組 JMenu fileMenu = new JMenu ("文件(F)"); //建立菜單項 JMenuItem saveAsItem = new JMenuItem ("另存為(A)..."); JMenuItem exitItem=new JMenuItem ("退出(I)"); JMenu editMenu=

15、new JMenu ("編輯(E)"); JMenuItem backItem=new JMenuItem ("后退"); JMenuItem forwardItem=new JMenuItem ("前進"); JMenu viewMenu=new JMenu ("視圖(V)"); JMenuItem fullscreenItem=new JMenuItem ("全屏(U)"); JMenuItem sourceItem=new JMenuItem ("查看源碼(C)"); JMenuItem reloadItem=new JMen

16、uItem ("刷新(R)"); //建立工具欄 JToolBar toolBar = new JToolBar(); //建立工具欄中的按鈕組件 utton picSave = new utton("另存為"); utton picBack = new utton("后退"); utton picForward = new utton("前進"); utton picView = new utton("查看源代碼"); utton picExit = new utton("退出"); JLabel la

17、bel=new JLabel ("地址"); utton button=new utton ("轉向"); Box adress=Box.createHorizontalBox (); //ArrayList對象,用來存放歷史地址 private ArrayList history=new ArrayList(); //整型變量,表示歷史地址的訪問順序 private int historyIndex; /** **構造函數 **初始化圖形用戶界面 */ public WebB

18、rowser(){ setTitle ("網頁瀏覽器"); setResizable(false); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //為jEditorPane1添加事件偵聽 jEditorPane1.addHyperlinkListener (this); //為組件fileMenu設置熱鍵‘F’ fileMenu.setMnemonic('F'); save

19、AsItem.setMnemonic ('S'); //為“另存為〞組件設置快捷鍵為ctrl+s saveAsItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_S,InputEvent.CTRL_MASK)); exitItem.setMnemonic('Q'); exitItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_E,InputEvent.CTRL_MASK));

20、 //將菜單項saveAsItem參加到菜單組fileMenu中 fileMenu.add (saveAsItem); //在菜單項中添加隔離 fileMenu.addSeparator (); fileMenu.add (exitItem); backItem.setMnemonic ('B'); backItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_Z,InputEvent.CTRL_MASK));

21、 forwardItem.setMnemonic('D'); forwardItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_P,InputEvent.CTRL_MASK)); editMenu.setMnemonic('E'); editMenu.add (backItem); editMenu.add (forwardItem); viewMenu.setMnemonic('V'); full

22、screenItem.setMnemonic('U'); fullscreenItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_U,InputEvent.CTRL_MASK)); sourceItem.setMnemonic('C'); sourceItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_C,InputEvent.CTRL_MASK)); reloadItem.setMnemonic

23、('R'); reloadItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_R,InputEvent.CTRL_MASK)); Container contentPane=getContentPane (); //設置大小 scrollPane.setPreferredSize(new Dimension(100,500)); contentPane.add (scrollPane, BorderLayout.SOUTH);

24、 //在工具欄中添加按鈕組件 toolBar.add(picSave); toolBar.addSeparator(); toolBar.add(picBack); toolBar.add(picForward); toolBar.addSeparator(); toolBar.add(picView); toolBar.addSeparator(); toolBar.add(picExit); con

25、tentPane.add (bar,BorderLayout.CENTER); contentPane.add(toolBar,BorderLayout.NORTH); viewMenu.add (fullscreenItem); viewMenu.add (sourceItem); viewMenu.addSeparator (); viewMenu.add (reloadItem); jMenuBar1.add (fileMenu);

26、jMenuBar1.add (editMenu); jMenuBar1.add (viewMenu); setJMenuBar (jMenuBar1); adress.add (label); adress.add (jurl); adress.add (button); bar.add (adress); //為組件添加事件監(jiān)聽 saveAsItem.addActionListener(this); picSave.

27、addActionListener(this); exitItem.addActionListener(this); picExit.addActionListener(this); backItem.addActionListener(this); picBack.addActionListener(this); forwardItem.addActionListener(this); picForward.addActionListener(this); fulls

28、creenItem.addActionListener(this); sourceItem.addActionListener(this); picView.addActionListener(this); reloadItem.addActionListener(this); button.addActionListener(this); jurl.addActionListener(this); } /** **實現監(jiān)聽器接口的actionPerformed函數

29、 */ public void actionPerformed(ActionEvent e) { String url = ""; //點擊轉向按鈕 if (e.getSource() == button){ //獲得地址欄的容 url=jurl.getText (); //url不為“〞,并且以“〞開頭 if(url.length ()>0&&url.startsWith ("")){

30、 try { //JEditorPane組件顯示url的容 jEditorPane1.setPage (url); //將url的容添加到ArrayList對象history中 history.add(url); //historyIndex的數值設為history對象的長度-1 historyIndex=history.size()-1

31、; //重新布局 jEditorPane1.setEditable(false); //add by copy editor :) jEditorPane1.revalidate (); } catch(Exception ex) { //如果顯示失敗,如此彈出選擇對話框“無法打開該搜索頁〞 JOptionPane.showMessageDial

32、og (WebBrowser.this,"無法打開該搜索頁","網頁瀏覽器",JOptionPane.ERROR_MESSAGE); } } //url不為“〞,并且不以“〞開頭 else if(url.length ()>0&&!url.startsWith ("")) { //在url前面添加“〞 url=""+url; try {

33、 jEditorPane1.setPage (url ); history.add(url); historyIndex=history.size()-1; jEditorPane1.setEditable(false); //add by copy editor :) jEditorPane1.revalidate (); } catch(Exception ex) {

34、 JOptionPane.showMessageDialog (WebBrowser.this,"無法打開該搜索頁","網頁瀏覽器",JOptionPane.ERROR_MESSAGE); } } //沒有輸入url,即url為空 else if(url.length ()==0){ JOptionPane.showMessageDialog (WebBrowser.this,"請輸入地址","網頁瀏覽器",JOpt

35、ionPane.ERROR_MESSAGE); } } //輸入地址后點擊回車 else if (e.getSource() == jurl){ url=jurl.getText (); if(url.length ()>0&&url.startsWith ("")) { try { jEditorPane1.setPage (url);

36、 history.add(url); historyIndex=history.size()-1; jEditorPane1.setEditable(false); //add by copy editor :) jEditorPane1.revalidate (); jurl.setMaximumSize (jurl.getPreferredSize ()); } catch(Exc

37、eption ex) { JOptionPane.showMessageDialog (WebBrowser.this,"無法打開該搜索頁","網頁瀏覽器",JOptionPane.ERROR_MESSAGE); } } else if(url.length ()>0&&!url.startsWith ("")) { url=""+url; try {

38、 jEditorPane1.setPage (url ); history.add(url); historyIndex=history.size()-1; jEditorPane1.setEditable(false); //add by copy editor :) jEditorPane1.revalidate (); } catch(Exception ex) {

39、 JOptionPane.showMessageDialog (WebBrowser.this,"無法打開該搜索頁","網頁瀏覽器",JOptionPane.ERROR_MESSAGE); } } else if(url.length ()==0){ JOptionPane.showMessageDialog (WebBrowser.this,"請輸入地址","網頁瀏覽器",JOptionPane.ERROR_MESSAGE);

40、 } } //另存為... else if (e.getSource() == picSave||e.getSource() == saveAsItem){ url = jurl.getText ().toString ().trim(); if(url.length ()>0&&!url.startsWith ("")) { url=""+url; } if(!url.equals

41、("")) { //保存文件 saveFile(url); } else { JOptionPane.showMessageDialog (WebBrowser.this,"請輸入地址","網頁瀏覽器",JOptionPane.ERROR_MESSAGE); } } //退出 else if (e.getSource() == exitItem ||e

42、.getSource() == picExit){ System.exit(0); } //后退 else if (e.getSource() == backItem ||e.getSource() == picBack){ historyIndex--; if(historyIndex < 0) historyIndex = 0; url = jurl.getText();

43、 try{ //獲得history對象中本地址之前訪問的地址 url = (String)history.get(historyIndex); jEditorPane1.setPage(url); jurl.setText(url.toString()); jEditorPane1.setEditable(false); //add by copy editor :) jEditorPane1.revalidate ()

44、; } catch(Exception ex){ } } //前進 else if (e.getSource() == forwardItem ||e.getSource() == picForward){ historyIndex++; if(historyIndex >= history.size()) historyIndex = history.size()

45、-1; url = jurl.getText(); try{ //獲得history對象中本地址之后訪問的地址 url = (String)history.get(historyIndex); jEditorPane1.setPage(url); jurl.setText(url.toString()); jEditorPane1.setEditable(false); //add by copy ed

46、itor :) jEditorPane1.revalidate (); } catch(Exception ex){ } } //全屏 else if (e.getSource() == fullscreenItem){ boolean add_button2=true; //獲得屏幕大小 Dimension size = Toolkit.getDe

47、faultToolkit().getScreenSize(); Container content = window.getContentPane(); content.add (bar,"North"); content.add (scrollPane,"Center"); //button2為點擊“全屏〞后的復原按鈕 if(add_button2==true) { bar.add (button2);

48、 } //為button2添加事件 button2.addActionListener (new ActionListener () { public void actionPerformed (ActionEvent evt) { WebBrowser.this.setEnabled (true); window.remove (bar); window

49、.remove (toolBar); window.remove (scrollPane); window.setVisible (false); scrollPane.setPreferredSize (new Dimension (100,500)); getContentPane ().add (scrollPane,BorderLayout.SOUTH);

50、getContentPane ().add (bar,BorderLayout.CENTER); getContentPane ().add (toolBar,BorderLayout.NORTH); bar.remove (button2); pack(); } }); window.setSize (size); window.setVisibl

51、e (true); } //查看源文件 else if (e.getSource() == sourceItem ||e.getSource() == picView){ url = jurl.getText ().toString ().trim (); if(url.length ()>0&&!url.startsWith ("")) { url=""+url; }

52、 if( !url.equals ("")) { //根據url,獲得源代碼 getHtmlSource (url); //生成顯示源代碼的框架對象 ViewSourceFrame vsframe = new ViewSourceFrame (htmlSource); vsframe.setBounds (0,0,800,500);

53、vsframe.setVisible(true); } else { JOptionPane.showMessageDialog (WebBrowser.this,"請輸入地址","網頁瀏覽器",JOptionPane.ERROR_MESSAGE); } } //刷新 else if (e.getSource() == reloadItem){ url=jurl.

54、getText (); if(url.length ()>0&&url.startsWith ("")) { try { jEditorPane1.setPage (url); jEditorPane1.setEditable(false); //add by copy editor :) jEditorPane1.revalidate (); } catch(E

55、xception ex) { } } else if(url.length ()>0&&!url.startsWith ("")) { url=""+url; try { jEditorPane1.setPage (url ); jEditorPane1.setEditable(false); //add by copy editor :)

56、 jEditorPane1.revalidate (); } catch(Exception ex) { } } } } /* **保存文件 */ void saveFile (final String url) { final String linesep = System.getProperty ("line.separator");

57、chooser1.setCurrentDirectory (new File (".")); chooser1.setDialogType (JFileChooser.SAVE_DIALOG); chooser1.setDialogTitle ("另存為..."); if(chooser1.showSaveDialog (this) != JFileChooser.APPROVE_OPTION) return; this.repaint (); Thread thre

58、ad = new Thread () { public void run () { try { .URL source = new URL (url); InputStream in = new BufferedInputStream (source.openStream ()); BufferedReader br=new BufferedReader (new InputStreamReader

59、(in)); File fileName = chooser1.getSelectedFile (); FileWriter out = new FileWriter (fileName); BufferedWriter bw = new BufferedWriter (out); String line; while((line = br.readLine ()) != nul

60、l) { bw.write (line); bw.newLine (); } bw.flush (); bw.close (); out.close (); String dMessage = url + " 已經被保存至"+ linesep +fileName.getAbs

61、olutePath (); String dTitle = "另存為"; int dType = JOptionPane.INFORMATION_MESSAGE; JOptionPane.showMessageDialog ((ponent) null,dMessage,dTitle,dType); } catch(.MalformedURLException muex) {

62、 JOptionPane.showMessageDialog ((ponent)null,muex.toString (),"網頁瀏覽器",JOptionPane.ERROR_MESSAGE); } catch(Exception ex) { JOptionPane.showMessageDialog ((ponent) null,ex.toString (),"網頁瀏覽器",JOptionPane.ERROR_MESSAGE);

63、 } } }; thread.start (); } /* **獲得源代碼 */ void getHtmlSource (String url) { String linesep,htmlLine; linesep = System.getProperty ("line.separator"); htmlSource =""; try { .URL sou

64、rce = new URL (url); InputStream in = new BufferedInputStream (source.openStream ()); BufferedReader br = new BufferedReader ( new InputStreamReader (in)); while((htmlLine = br.readLine ())!=null) { htmlSource = htmlSource +htmlLine+linesep

65、; } } catch(.MalformedURLException muex) { JOptionPane.showMessageDialog (WebBrowser.this,muex.toString (),"網頁瀏覽器",JOptionPane.ERROR_MESSAGE); } catch(Exception e) { JOptionPane.showMessageDialog (WebBrowser.this,e.toS

66、tring (),"網頁瀏覽器",JOptionPane.ERROR_MESSAGE); } } /** **實現監(jiān)聽器接口的hyperlinkUpdate函數 */ public void hyperlinkUpdate (HyperlinkEvent e) { if(e.getEventType () == HyperlinkEvent.EventType.ACTIVATED) { String url = jurl.getText(); if(url.length ()>0&&url.startsWith ("")) { try { jEditorPane1.setPage (url); jEditorPane1.revalidate (

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網版權所有   聯系電話:18123376007

備案號:ICP2024067431-1 川公網安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網,我們立即給予刪除!