網(wǎng)頁(yè)瀏覽器--Java課程設(shè)計(jì)
《網(wǎng)頁(yè)瀏覽器--Java課程設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《網(wǎng)頁(yè)瀏覽器--Java課程設(shè)計(jì)(27頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、word 《 面向?qū)ο蟪绦蛟O(shè)計(jì)》 課程設(shè)計(jì)報(bào)告 題 目:網(wǎng)頁(yè)瀏覽器設(shè)計(jì) 院 〔系〕: 信息科學(xué)與工程學(xué)院 專業(yè)班級(jí): 計(jì)算機(jī)科學(xué)與技術(shù)1201班 學(xué)生:程偉 學(xué) 號(hào): 指導(dǎo)教師: 吳奕 20 14 年 12 月 29 日至20 15 年 1 月 9 日 華中科技大學(xué)武昌分校制 面向?qū)ο蟪绦蛟O(shè)計(jì) 課程設(shè)計(jì)任務(wù)書(shū) 一、設(shè)計(jì)〔調(diào)查報(bào)告/論文〕題目 瀏覽器設(shè)計(jì) 二、設(shè)計(jì)〔調(diào)查報(bào)告/論文〕主要容 容: 該瀏覽器
2、要一個(gè)圖形界面操作,設(shè)計(jì)的功能類(lèi)似于WINDOWS操作系統(tǒng)中的IE瀏覽器。系統(tǒng)使用Eclipse與工具,操作系統(tǒng)為WINDOWS,采用面向?qū)ο蠓椒ㄍ瓿?,包括需求與總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼實(shí)現(xiàn)、系統(tǒng)測(cè)試。在URL地址欄中輸入網(wǎng)址,點(diǎn)擊轉(zhuǎn)向按鈕,該瀏覽器可以自動(dòng)轉(zhuǎn)向所指地址頁(yè)面,顯示網(wǎng)頁(yè)信息,實(shí)現(xiàn)瀏覽器的根本功能,并可實(shí)現(xiàn)查看和保存訪問(wèn)頁(yè)面的HTML源代碼。 根本功能與要求: 以下界面實(shí)現(xiàn)局部 ①實(shí)現(xiàn)生成網(wǎng)頁(yè)瀏覽器的主體框架 ②實(shí)現(xiàn)框架上各個(gè)組件的時(shí)間監(jiān)聽(tīng) ③圖形界面的設(shè)計(jì) ④組件監(jiān)聽(tīng)接口的實(shí)現(xiàn) 以下功能實(shí)現(xiàn)局部 ①實(shí)現(xiàn)查看源文件的主體框架。 ②實(shí)現(xiàn)源文件的保存功能
3、,包括另存為即可以將正在訪問(wèn)的網(wǎng)頁(yè)進(jìn)展保存。 ③前進(jìn)即訪問(wèn)現(xiàn)有頁(yè)面的上一個(gè)頁(yè)面;后退即訪問(wèn)現(xiàn)有頁(yè)面的下一個(gè)頁(yè)面。 ④查看源文件功能即查看訪問(wèn)頁(yè)面的HTML源文件代碼。 三、原始資料 1.《面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)》指導(dǎo)書(shū) 2.耿祥義.JAVA大學(xué)實(shí)用教程.:清華大學(xué),2009. 四、要求的設(shè)計(jì)〔調(diào)查/論文〕成果 五、進(jìn)程安排 布置任務(wù),查找資料、需求分析1天 總體設(shè)計(jì)1天 詳細(xì)設(shè)計(jì) 編制源程序?qū)崿F(xiàn) 測(cè)試與修改1天 撰寫(xiě)課設(shè)報(bào)告2天 六、主要參考資料 [1] 廣彬. Java課程設(shè)計(jì)案例精編〔第二版〕.:清華大學(xué), 2011. [2] 耿祥義. Java課
4、程設(shè)計(jì)〔第二版〕.:清華大學(xué), 2008. [3] 耿祥義.JAVA大學(xué)實(shí)用教程.:清華大學(xué),2009. [4] 鄒林達(dá).國(guó)君 Java2程序設(shè)計(jì)根底.:清華大學(xué),2010. [5] 鄒林達(dá).Java2程序設(shè)計(jì)根底實(shí)驗(yàn)指導(dǎo).:清華大學(xué),2010. 指導(dǎo)教師〔簽名〕: 20 年 月 日 目錄 1需求與總體設(shè)計(jì)1 需求分析1 總體設(shè)計(jì)思路1 功能圖與類(lèi)圖2 2詳細(xì)設(shè)計(jì)3 詳細(xì)設(shè)計(jì)思路3 復(fù)用組件4 3編碼實(shí)現(xiàn)5 4系統(tǒng)運(yùn)行與測(cè)試21 系統(tǒng)測(cè)試情況21 排除錯(cuò)誤的處理24 總結(jié)25 27 / 27
5、1需求與總體設(shè)計(jì) 此網(wǎng)頁(yè)瀏覽器的主要功能描述:通過(guò)在地址欄里面輸入U(xiǎn)RL地址,可以訪的 網(wǎng)頁(yè)。除此之外,本案例中的網(wǎng)頁(yè)瀏覽器還增添了如下幾個(gè)功能。 1.另存為:可以將正在訪問(wèn)的頁(yè)面進(jìn)展保存。 2.前進(jìn):訪問(wèn)現(xiàn)有頁(yè)面的上一個(gè)頁(yè)面。 3.后退:訪問(wèn)現(xiàn)有頁(yè)面的下一個(gè)頁(yè)面。 4.查看源文件:查看訪問(wèn)頁(yè)面的HTML源文件,并且提供保存功能。 網(wǎng)頁(yè)瀏覽器的程序由文件WebBrowser.java與ViewSourceFrame.java兩個(gè)文件組成。 1〕WebBrowser,java 該文件包含名為WebBrowser的public類(lèi),其主要功能為生成網(wǎng)頁(yè)瀏覽器的主體
6、框架,實(shí)現(xiàn)框架上各個(gè)組件的事件偵聽(tīng)。主要包括4個(gè)模塊:圖形用戶界面的構(gòu)建:組件監(jiān)聽(tīng)接口的實(shí)現(xiàn):文件保存功能的實(shí)現(xiàn):查看源代碼框架的生成。 2〕ViewSourceFrame.java 該文件包含名為ViewSourceFrame的類(lèi),其主要功能是實(shí)現(xiàn)了源文件查看的主體框架,并實(shí)現(xiàn)了源文件的保存功能。主要包括兩個(gè)模塊:圖形用戶界面的構(gòu)建:組件監(jiān)聽(tīng)接口的實(shí)現(xiàn)。 2詳細(xì)設(shè)計(jì) WebBrowser.java文件是網(wǎng)頁(yè)瀏覽器的主類(lèi)文件,生成了網(wǎng)頁(yè)瀏覽器的主體框架,并實(shí)現(xiàn)框架上各個(gè)組件的事件偵聽(tīng)。 Pubilic class WebBrowser extends JF
7、rame implements HyperlinkListener,ActtionListener //建立主件,包括地址欄、界面、地址欄、菜單組、菜單項(xiàng)、工具欄、工具欄中按鈕組件、存放歷史地址、訪問(wèn)順序。 public WebBrowser() /*構(gòu)造函數(shù),圖形化用戶界面*/ public void actionPerformed(ActionEvent e) /*實(shí)現(xiàn)監(jiān)聽(tīng)器接口的actionPerformed函數(shù)*/ void saveFile(final String url)//保存文件 void getHtmlSource (String url)//獲得原文件
8、 public void hyperlinkUpdate(HyperlinkEvent e)//實(shí)現(xiàn)監(jiān)聽(tīng)器接口的hyperlinkUpdate函數(shù) public static void main(String[] args)/*生成一個(gè)IE對(duì)象*/ ViewSourceFrame.java文件的作用是實(shí)現(xiàn)網(wǎng)頁(yè)瀏覽器中源文件瀏覽的主體框架并提供了源文件的保存功能。 class ViewSourceFrame extends JFrame implements ActionListener//建立主件 public ViewSourceFrame (String htmlSourc
9、e) //構(gòu)造函數(shù),初始化圖形用戶界面 public void actionPerformed(ActionEvent e)//實(shí)現(xiàn)監(jiān)聽(tīng)器接口的actionPerformed函數(shù) 選擇好的容器就是為界面構(gòu)造一個(gè)根本的骨架,然后在其中添加各個(gè)組件。 組件復(fù)用表: 功能 所復(fù)用的組件 菜單組 復(fù)用JMenu組件 菜單項(xiàng) 復(fù)用JMenuItem組件 工具欄 復(fù)用JPanel組件 按鈕 復(fù)用utton組件 地址欄 復(fù)用JLabel組件 狀態(tài)欄 復(fù)用JPanel組件 滾動(dòng)條 復(fù)用scrollPane組件
10、菜單欄 復(fù)用JMenuBar組件 組件初始化 bar=new JToolBar (); //建立工具欄用來(lái)顯示地址欄 jMenuBar1 = new JMenuBar(); //建立菜單欄 fileMenu = new JMenu ("文件(F)"); //建立菜單組 對(duì)各個(gè)菜單項(xiàng)進(jìn)展初始化 saveAsItem = new JMenuItem ("另存為(A)..."); exitItem=new JMenuItem ("退出(I)"); backItem=new JMenuItem ("后退"); forwardItem=new JMenuItem ("前進(jìn)")
11、; fullscreenItem=new JMenuItem ("全屏(U)"); sourceItem=new JMenuItem ("查看源碼(C)"); reloadItem=new JMenuItem ("刷新(R)"); 工具欄與菜單欄的初始化過(guò)程類(lèi)似。 3編碼實(shí)現(xiàn) 源代碼: 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{ //建立工具欄用來(lái)顯示地址欄 JToolBar bar=new JToolBar (); //建立網(wǎng)頁(yè)顯示界面 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 ("窗口復(fù)原");
14、 Toolkit toolkit = Toolkit.getDefaultToolkit(); //建立菜單欄 JMenuBar jMenuBar1 = new JMenuBar(); //建立菜單組 JMenu fileMenu = new JMenu ("文件(F)"); //建立菜單項(xiàng) JMenuItem saveAsItem = new JMenuItem ("另存為(A)..."); JMenuItem exitItem=new JMenuItem ("退出(I)"); JMenu editMenu=
15、new JMenu ("編輯(E)"); JMenuItem backItem=new JMenuItem ("后退"); JMenuItem forwardItem=new JMenuItem ("前進(jìn)"); 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("前進(jìn)"); utton picView = new utton("查看源代碼"); utton picExit = new utton("退出"); JLabel la
17、bel=new JLabel ("地址"); utton button=new utton ("轉(zhuǎn)向"); Box adress=Box.createHorizontalBox (); //ArrayList對(duì)象,用來(lái)存放歷史地址 private ArrayList history=new ArrayList(); //整型變量,表示歷史地址的訪問(wèn)順序 private int historyIndex; /** **構(gòu)造函數(shù) **初始化圖形用戶界面 */ public WebB
18、rowser(){ setTitle ("網(wǎng)頁(yè)瀏覽器"); setResizable(false); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //為jEditorPane1添加事件偵聽(tīng) jEditorPane1.addHyperlinkListener (this); //為組件fileMenu設(shè)置熱鍵‘F’ fileMenu.setMnemonic('F'); save
19、AsItem.setMnemonic ('S'); //為“另存為〞組件設(shè)置快捷鍵為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、 //將菜單項(xiàng)saveAsItem參加到菜單組fileMenu中 fileMenu.add (saveAsItem); //在菜單項(xiàng)中添加隔離 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 (); //設(shè)置大小 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)聽(tīng) 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); } /** **實(shí)現(xiàn)監(jiān)聽(tīng)器接口的actionPerformed函數(shù)
29、 */ public void actionPerformed(ActionEvent e) { String url = ""; //點(diǎn)擊轉(zhuǎn)向按鈕 if (e.getSource() == button){ //獲得地址欄的容 url=jurl.getText (); //url不為“〞,并且以“〞開(kāi)頭 if(url.length ()>0&&url.startsWith ("")){
30、 try { //JEditorPane組件顯示url的容 jEditorPane1.setPage (url); //將url的容添加到ArrayList對(duì)象history中 history.add(url); //historyIndex的數(shù)值設(shè)為history對(duì)象的長(zhǎng)度-1 historyIndex=history.size()-1
31、; //重新布局 jEditorPane1.setEditable(false); //add by copy editor :) jEditorPane1.revalidate (); } catch(Exception ex) { //如果顯示失敗,如此彈出選擇對(duì)話框“無(wú)法打開(kāi)該搜索頁(yè)〞 JOptionPane.showMessageDial
32、og (WebBrowser.this,"無(wú)法打開(kāi)該搜索頁(yè)","網(wǎng)頁(yè)瀏覽器",JOptionPane.ERROR_MESSAGE); } } //url不為“〞,并且不以“〞開(kāi)頭 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,"無(wú)法打開(kāi)該搜索頁(yè)","網(wǎng)頁(yè)瀏覽器",JOptionPane.ERROR_MESSAGE); } } //沒(méi)有輸入url,即url為空 else if(url.length ()==0){ JOptionPane.showMessageDialog (WebBrowser.this,"請(qǐng)輸入地址","網(wǎng)頁(yè)瀏覽器",JOpt
35、ionPane.ERROR_MESSAGE); } } //輸入地址后點(diǎn)擊回車(chē) 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,"無(wú)法打開(kāi)該搜索頁(yè)","網(wǎng)頁(yè)瀏覽器",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,"無(wú)法打開(kāi)該搜索頁(yè)","網(wǎng)頁(yè)瀏覽器",JOptionPane.ERROR_MESSAGE); } } else if(url.length ()==0){ JOptionPane.showMessageDialog (WebBrowser.this,"請(qǐng)輸入地址","網(wǎng)頁(yè)瀏覽器",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,"請(qǐng)輸入地址","網(wǎng)頁(yè)瀏覽器",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對(duì)象中本地址之前訪問(wèn)的地址 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){ } } //前進(jìn) else if (e.getSource() == forwardItem ||e.getSource() == picForward){ historyIndex++; if(historyIndex >= history.size()) historyIndex = history.size()
45、-1; url = jurl.getText(); try{ //獲得history對(duì)象中本地址之后訪問(wèn)的地址 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為點(diǎn)擊“全屏〞后的復(fù)原按鈕 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 ("")) { //根據(jù)url,獲得源代碼 getHtmlSource (url); //生成顯示源代碼的框架對(duì)象 ViewSourceFrame vsframe = new ViewSourceFrame (htmlSource); vsframe.setBounds (0,0,800,500);
53、vsframe.setVisible(true); } else { JOptionPane.showMessageDialog (WebBrowser.this,"請(qǐng)輸入地址","網(wǎng)頁(yè)瀏覽器",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 + " 已經(jīng)被保存至"+ 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 (),"網(wǎng)頁(yè)瀏覽器",JOptionPane.ERROR_MESSAGE); } catch(Exception ex) { JOptionPane.showMessageDialog ((ponent) null,ex.toString (),"網(wǎng)頁(yè)瀏覽器",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 (),"網(wǎng)頁(yè)瀏覽器",JOptionPane.ERROR_MESSAGE); } catch(Exception e) { JOptionPane.showMessageDialog (WebBrowser.this,e.toS
66、tring (),"網(wǎng)頁(yè)瀏覽器",JOptionPane.ERROR_MESSAGE); } } /** **實(shí)現(xiàn)監(jiān)聽(tīng)器接口的hyperlinkUpdate函數(shù) */ 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: 本站所有資源如無(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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 初中語(yǔ)文作文素材:30篇文學(xué)名著開(kāi)場(chǎng)白
- 初中語(yǔ)文答題技巧:現(xiàn)代文閱讀-說(shuō)明文閱讀知識(shí)點(diǎn)總結(jié)
- 初中語(yǔ)文作文十大常考話題+素材
- 初中語(yǔ)文作文素材:描寫(xiě)冬天的好詞、好句、好段總結(jié)
- 初中語(yǔ)文必考名著總結(jié)
- 初中語(yǔ)文作文常見(jiàn)主題總結(jié)
- 初中語(yǔ)文考試??济偨Y(jié)
- 初中語(yǔ)文必考50篇古詩(shī)文默寫(xiě)
- 初中語(yǔ)文易錯(cuò)易混詞總結(jié)
- 初中語(yǔ)文228條文學(xué)常識(shí)
- 初中語(yǔ)文作文素材:30組可以用古詩(shī)詞當(dāng)作文標(biāo)題
- 初中語(yǔ)文古代文化常識(shí)七大類(lèi)別總結(jié)
- 初中語(yǔ)文作文素材:100個(gè)文藝韻味小短句
- 初中語(yǔ)文閱讀理解33套答題公式
- 初中語(yǔ)文228條文學(xué)常識(shí)總結(jié)