版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 《 面向?qū)ο蟪绦蛟O(shè)計(jì)》</p><p><b> 課程設(shè)計(jì)報(bào)告</b></p><p> 題 目: 網(wǎng)頁瀏覽器設(shè)計(jì) </p><p> 院 (系): 信息科學(xué)與工程學(xué)院 </p><p> 專業(yè)班級: 計(jì)算機(jī)科學(xué)與技術(shù)1201班
2、 </p><p> 20 14 年 12 月 29 日至20 15 年 1 月 9 日</p><p> 面向?qū)ο蟪绦蛟O(shè)計(jì) 課程設(shè)計(jì)任務(wù)書</p><p><b> 目錄</b></p><p> 1需求與總體設(shè)計(jì)1</p><p><b> 1.1需求分
3、析1</b></p><p> 1.2總體設(shè)計(jì)思路1</p><p> 1.3功能圖與類圖2</p><p><b> 2詳細(xì)設(shè)計(jì)3</b></p><p> 2.1詳細(xì)設(shè)計(jì)思路3</p><p><b> 2.2復(fù)用組件4</b></
4、p><p><b> 3編碼實(shí)現(xiàn)5</b></p><p> 4系統(tǒng)運(yùn)行與測試21</p><p> 4.1系統(tǒng)測試情況21</p><p> 4.2排除錯(cuò)誤的處理24</p><p><b> 總 結(jié)25</b></p><p>&
5、lt;b> 1需求與總體設(shè)計(jì)</b></p><p><b> 1.1需求分析</b></p><p> 此網(wǎng)頁瀏覽器的主要功能描述:通過在地址欄里面輸入U(xiǎn)RL地址,可以訪的</p><p> 網(wǎng)頁。除此之外,本案例中的網(wǎng)頁瀏覽器還增添了如下幾個(gè)功能。 </p><p> 1.另存為:可以將正
6、在訪問的頁面進(jìn)行保存。</p><p> 2.前進(jìn):訪問現(xiàn)有頁面的上一個(gè)頁面。</p><p> 3.后退:訪問現(xiàn)有頁面的下一個(gè)頁面。</p><p> 4.查看源文件:查看訪問頁面的HTML源文件,并且提供保存功能。</p><p><b> 1.2總體設(shè)計(jì)思路</b></p><p>
7、 網(wǎng)頁瀏覽器的程序由文件WebBrowser.java與ViewSourceFrame.java兩個(gè)文件組成。</p><p> 1)WebBrowser,java</p><p> 該文件包含名為WebBrowser的public類,其主要功能為生成網(wǎng)頁瀏覽器的主體框架,實(shí)現(xiàn)框架上各個(gè)組件的事件偵聽。主要包括4個(gè)模塊:圖形用戶界面的構(gòu)建:組件監(jiān)聽接口的實(shí)現(xiàn):文件保存功能的實(shí)現(xiàn):查看
8、源代碼框架的生成。</p><p> 2)ViewSourceFrame.java </p><p> 該文件包含名為ViewSourceFrame的類,其主要功能是實(shí)現(xiàn)了源文件查看的主體框架,并實(shí)現(xiàn)了源文件的保存功能。主要包括兩個(gè)模塊:圖形用戶界面的構(gòu)建:組件監(jiān)聽接口的實(shí)現(xiàn)。</p><p><b> 1.3功能圖與類圖</b><
9、/p><p><b> 2詳細(xì)設(shè)計(jì)</b></p><p><b> 2.1詳細(xì)設(shè)計(jì)思路</b></p><p> WebBrowser.java文件是網(wǎng)頁瀏覽器的主類文件,生成了網(wǎng)頁瀏覽器的主體框架,并實(shí)現(xiàn)框架上各個(gè)組件的事件偵聽。</p><p> Pubilic class WebBrow
10、ser extends JFrame implements HyperlinkListener,ActtionListener //建立主件,包括地址欄、界面、地址欄、菜單組、菜單項(xiàng)、工具欄、工具欄中按鈕組件、存放歷史地址、訪問順序。</p><p> public WebBrowser() /*構(gòu)造函數(shù),圖形化用戶界面*/ </p><p> public void actio
11、nPerformed(ActionEvent e) /*實(shí)現(xiàn)監(jiān)聽器接口的actionPerformed函數(shù)*/</p><p> void saveFile(final String url)//保存文件 </p><p> void getHtmlSource (String url)//獲得原文件</p><p> public void hyperli
12、nkUpdate(HyperlinkEvent e)//實(shí)現(xiàn)監(jiān)聽器接口的hyperlinkUpdate函數(shù)</p><p> public static void main(String[] args)/*生成一個(gè)IE對象*/</p><p> ViewSourceFrame.java文件的作用是實(shí)現(xiàn)網(wǎng)頁瀏覽器中源文件瀏覽的主體框架并提供了源文件的保存功能。</p>&l
13、t;p> class ViewSourceFrame extends JFrame implements ActionListener//建立主件</p><p> public ViewSourceFrame (String htmlSource) //構(gòu)造函數(shù),初始化圖形用戶界面</p><p> public void actionPerformed(ActionEven
14、t e)//實(shí)現(xiàn)監(jiān)聽器接口的actionPerformed函數(shù)</p><p><b> 2.2復(fù)用組件 </b></p><p> 選擇好的容器就是為界面構(gòu)造一個(gè)基本的骨架,然后在其中添加各個(gè)組件。</p><p><b> 組件復(fù)用表:</b></p><p><b> 組件初
15、始化</b></p><p> bar=new JToolBar (); //建立工具欄用來顯示地址欄</p><p> jMenuBar1 = new JMenuBar(); //建立菜單欄 </p><p> fileMenu = new JMenu ("文件(F)"); //建立菜單組</p><
16、p> 對各個(gè)菜單項(xiàng)進(jìn)行初始化</p><p> saveAsItem = new JMenuItem ("另存為(A)...");</p><p> exitItem=new JMenuItem ("退出(I)");</p><p> backItem=new JMenuItem ("后退")
17、;</p><p> forwardItem=new JMenuItem ("前進(jìn)");</p><p> fullscreenItem=new JMenuItem ("全屏(U)"); </p><p> sourceItem=new JMenuItem ("查看源碼(C)");</p>
18、<p> reloadItem=new JMenuItem ("刷新(R)");</p><p> 工具欄與菜單欄的初始化過程類似。</p><p><b> 3編碼實(shí)現(xiàn)</b></p><p><b> 源代碼:</b></p><p> import
19、java.awt.*; </p><p> import javax.swing.*;</p><p> import java.awt.event.*; </p><p> import javax.swing.event.*;</p><p> import javax.swing.border.*; </p>&l
20、t;p> import java.io.*; </p><p> import java.net.*; </p><p> import java.util.*; </p><p> public class WebBrowser extends JFrame implements HyperlinkListener,ActionListener{ &
21、lt;/p><p> //建立工具欄用來顯示地址欄</p><p> JToolBar bar=new JToolBar (); </p><p> //建立網(wǎng)頁顯示界面</p><p> JTextField jurl = new JTextField (60); </p><p> JEditorPane
22、 jEditorPane1 = new JEditorPane ();</p><p> JScrollPane scrollPane = new JScrollPane (jEditorPane1); </p><p> JFileChooser chooser=new JFileChooser (); </p><p> JFileChooser choo
23、ser1=new JFileChooser (); </p><p> String htmlSource; </p><p> JWindow window = new JWindow (WebBrowser.this); </p><p> JButton button2=new JButton ("窗口還原");</p>
24、<p> Toolkit toolkit = Toolkit.getDefaultToolkit();</p><p><b> //建立菜單欄</b></p><p> JMenuBar jMenuBar1 = new JMenuBar(); </p><p><b> //建立菜單組</b><
25、/p><p> JMenu fileMenu = new JMenu ("文件(F)"); </p><p><b> //建立菜單項(xiàng)</b></p><p> JMenuItem saveAsItem = new JMenuItem ("另存為(A)...");</p><p>
26、; JMenuItem exitItem=new JMenuItem ("退出(I)");</p><p> JMenu editMenu=new JMenu ("編輯(E)");</p><p> JMenuItem backItem=new JMenuItem ("后退");</p><p>
27、JMenuItem forwardItem=new JMenuItem ("前進(jìn)");</p><p> JMenu viewMenu=new JMenu ("視圖(V)");</p><p> JMenuItem fullscreenItem=new JMenuItem ("全屏(U)"); </p><
28、p> JMenuItem sourceItem=new JMenuItem ("查看源碼(C)");</p><p> JMenuItem reloadItem=new JMenuItem ("刷新(R)");</p><p><b> //建立工具欄</b></p><p> JToolB
29、ar toolBar = new JToolBar();</p><p> //建立工具欄中的按鈕組件</p><p> JButton picSave = new JButton("另存為");</p><p> JButton picBack = new JButton("后退");</p><p
30、> JButton picForward = new JButton("前進(jìn)");</p><p> JButton picView = new JButton("查看源代碼");</p><p> JButton picExit = new JButton("退出");</p><p> J
31、Label label=new JLabel ("地址"); </p><p> JButton button=new JButton ("轉(zhuǎn)向");</p><p> Box adress=Box.createHorizontalBox (); </p><p> //ArrayList對象,用來存放歷史地址<
32、;/p><p> private ArrayList history=new ArrayList();</p><p> //整型變量,表示歷史地址的訪問順序</p><p> private int historyIndex;</p><p><b> /**</b></p><p><
33、;b> **構(gòu)造函數(shù)</b></p><p> **初始化圖形用戶界面</p><p><b> */</b></p><p> public WebBrowser(){ </p><p> setTitle ("網(wǎng)頁瀏覽器"); </p><p&g
34、t; setResizable(false);</p><p> setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);</p><p> //為jEditorPane1添加事件偵聽</p><p> jEditorPane1.addHyperlinkListener (this);</p><p&
35、gt; //為組件fileMenu設(shè)置熱鍵‘F’</p><p> fileMenu.setMnemonic('F'); </p><p> saveAsItem.setMnemonic ('S'); </p><p> //為“另存為”組件設(shè)置快捷鍵為ctrl+s</p><p> sa
36、veAsItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_S,InputEvent.CTRL_MASK)); </p><p> exitItem.setMnemonic('Q'); </p><p> exitItem.setAccelerator (KeyStroke.getKeyStroke (
37、KeyEvent.VK_E,InputEvent.CTRL_MASK)); </p><p> //將菜單項(xiàng)saveAsItem加入到菜單組fileMenu中</p><p> fileMenu.add (saveAsItem); </p><p> //在菜單項(xiàng)中添加隔離</p><p> fileMenu.addSeparator
38、 (); </p><p> fileMenu.add (exitItem);</p><p> backItem.setMnemonic ('B'); </p><p> backItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_Z,InputEvent.CTRL_MASK));
39、 </p><p> forwardItem.setMnemonic('D'); </p><p> forwardItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_P,InputEvent.CTRL_MASK)); </p><p> editMenu.setMnemonic(
40、'E'); </p><p> editMenu.add (backItem); </p><p> editMenu.add (forwardItem); </p><p> viewMenu.setMnemonic('V'); </p><p> fullscreenItem.setMnemonic
41、('U');</p><p> fullscreenItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_U,InputEvent.CTRL_MASK)); </p><p> sourceItem.setMnemonic('C');</p><p> sourceIt
42、em.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_C,InputEvent.CTRL_MASK)); </p><p> reloadItem.setMnemonic('R');</p><p> reloadItem.setAccelerator (KeyStroke.getKeyStroke (KeyEve
43、nt.VK_R,InputEvent.CTRL_MASK)); </p><p> Container contentPane=getContentPane (); </p><p><b> //設(shè)置大小</b></p><p> scrollPane.setPreferredSize(new Dimension(100,500))
44、;</p><p> contentPane.add (scrollPane, BorderLayout.SOUTH); </p><p> //在工具欄中添加按鈕組件</p><p> toolBar.add(picSave);</p><p> toolBar.addSeparator();</p>&
45、lt;p> toolBar.add(picBack);</p><p> toolBar.add(picForward);</p><p> toolBar.addSeparator();</p><p> toolBar.add(picView);</p><p> toolBar.addSeparator();</p
46、><p> toolBar.add(picExit); </p><p> contentPane.add (bar,BorderLayout.CENTER); </p><p> contentPane.add(toolBar,BorderLayout.NORTH); </p><p> viewMenu.add (fullscre
47、enItem); </p><p> viewMenu.add (sourceItem); </p><p> viewMenu.addSeparator (); </p><p> viewMenu.add (reloadItem); </p><p> jMenuBar1.add (fileMenu); </p
48、><p> jMenuBar1.add (editMenu); </p><p> jMenuBar1.add (viewMenu); </p><p> setJMenuBar (jMenuBar1); </p><p> adress.add (label); </p><p> adress.add (ju
49、rl); </p><p> adress.add (button); </p><p> bar.add (adress); </p><p> //為組件添加事件監(jiān)聽</p><p> saveAsItem.addActionListener(this);</p><p> picSave.addAct
50、ionListener(this);</p><p> exitItem.addActionListener(this);</p><p> picExit.addActionListener(this);</p><p> backItem.addActionListener(this);</p><p> picBack.addA
51、ctionListener(this);</p><p> forwardItem.addActionListener(this);</p><p> picForward.addActionListener(this);</p><p> fullscreenItem.addActionListener(this);</p><p>
52、 sourceItem.addActionListener(this);</p><p> picView.addActionListener(this);</p><p> reloadItem.addActionListener(this);</p><p> button.addActionListener(this);</p><
53、p> jurl.addActionListener(this);</p><p><b> } </b></p><p><b> /**</b></p><p> **實(shí)現(xiàn)監(jiān)聽器接口的actionPerformed函數(shù)</p><p><b> */</b>
54、;</p><p> public void actionPerformed(ActionEvent e) {</p><p> String url = "";</p><p><b> //點(diǎn)擊轉(zhuǎn)向按鈕</b></p><p> if (e.getSource() == button){&
55、lt;/p><p> //獲得地址欄的內(nèi)容</p><p> url=jurl.getText (); </p><p> //url不為“”,并且以“http://”開頭</p><p> if(url.length ()>0&&url.startsWith ("http://")){ <
56、/p><p><b> try { </b></p><p> //JEditorPane組件顯示url的內(nèi)容鏈接</p><p> jEditorPane1.setPage (url); </p><p> //將url的內(nèi)容添加到ArrayList對象history中</p><p>
57、history.add(url); </p><p> //historyIndex的數(shù)值設(shè)為history對象的長度-1</p><p> historyIndex=history.size()-1;</p><p><b> //重新布局</b></p><p> jEditorPane1.setEditab
58、le(false); //add by copy editor :)</p><p> jEditorPane1.revalidate (); </p><p><b> } </b></p><p> catch(Exception ex) { </p><p> //如果鏈接顯示失敗,則彈出選擇對話框“無法打
59、開該搜索頁”</p><p> JOptionPane.showMessageDialog (WebBrowser.this,"無法打開該搜索頁","網(wǎng)頁瀏覽器",JOptionPane.ERROR_MESSAGE);</p><p><b> } </b></p><p><b> }
60、</b></p><p> //url不為“”,并且不以“http://”開頭</p><p> else if(url.length ()>0&&!url.startsWith ("http://")) { </p><p> //在url前面添加“http://”</p><p>
61、; url="http://"+url; </p><p><b> try { </b></p><p> jEditorPane1.setPage (url ); </p><p> history.add(url); </p><p> historyIndex=history.siz
62、e()-1;</p><p> jEditorPane1.setEditable(false); //add by copy editor :)</p><p> jEditorPane1.revalidate (); </p><p><b> } </b></p><p> catch(Exception e
63、x) {</p><p> JOptionPane.showMessageDialog (WebBrowser.this,"無法打開該搜索頁","網(wǎng)頁瀏覽器",JOptionPane.ERROR_MESSAGE);</p><p><b> } </b></p><p><b> }<
64、;/b></p><p> //沒有輸入url,即url為空</p><p> else if(url.length ()==0){</p><p> JOptionPane.showMessageDialog (WebBrowser.this,"請輸入鏈接地址","網(wǎng)頁瀏覽器",JOptionPane.ERROR
65、_MESSAGE);</p><p><b> } </b></p><p><b> }</b></p><p> //輸入地址后點(diǎn)擊回車</p><p> else if (e.getSource() == jurl){</p><p> url=jurl.ge
66、tText (); </p><p> if(url.length ()>0&&url.startsWith ("http://")) { </p><p><b> try { </b></p><p> jEditorPane1.setPage (url); </p><p
67、> history.add(url); </p><p> historyIndex=history.size()-1;</p><p> jEditorPane1.setEditable(false); //add by copy editor :)</p><p> jEditorPane1.revalidate (); </p>&
68、lt;p> jurl.setMaximumSize (jurl.getPreferredSize ()); </p><p><b> } </b></p><p> catch(Exception ex) { </p><p> JOptionPane.showMessageDialog (WebBrowser.this,&qu
69、ot;無法打開該搜索頁","網(wǎng)頁瀏覽器",JOptionPane.ERROR_MESSAGE);</p><p><b> } </b></p><p><b> } </b></p><p> else if(url.length ()>0&&!url.start
70、sWith ("http://")) { </p><p> url="http://"+url; </p><p><b> try { </b></p><p> jEditorPane1.setPage (url );</p><p> history.add(url
71、); </p><p> historyIndex=history.size()-1;</p><p> jEditorPane1.setEditable(false); //add by copy editor :)</p><p> jEditorPane1.revalidate (); </p><p><b> }
72、</b></p><p> catch(Exception ex) { </p><p> JOptionPane.showMessageDialog (WebBrowser.this,"無法打開該搜索頁","網(wǎng)頁瀏覽器",JOptionPane.ERROR_MESSAGE);</p><p><b>
73、; } </b></p><p><b> }</b></p><p> else if(url.length ()==0){</p><p> JOptionPane.showMessageDialog (WebBrowser.this,"請輸入鏈接地址","網(wǎng)頁瀏覽器",JOpti
74、onPane.ERROR_MESSAGE);</p><p><b> }</b></p><p><b> }</b></p><p><b> //另存為...</b></p><p> else if (e.getSource() == picSave||e.ge
75、tSource() == saveAsItem){</p><p> url = jurl.getText ().toString ().trim(); </p><p> if(url.length ()>0&&!url.startsWith ("http://")) { </p><p> url="ht
76、tp://"+url; </p><p><b> } </b></p><p> if(!url.equals ("")) { </p><p><b> //保存文件</b></p><p> saveFile(url); </p><p
77、><b> } </b></p><p><b> else { </b></p><p> JOptionPane.showMessageDialog (WebBrowser.this,"請輸入鏈接地址","網(wǎng)頁瀏覽器",JOptionPane.ERROR_MESSAGE); </p&g
78、t;<p><b> } </b></p><p><b> }</b></p><p><b> //退出</b></p><p> else if (e.getSource() == exitItem ||e.getSource() == picExit){</p>
79、;<p> System.exit(0);</p><p><b> }</b></p><p><b> //后退</b></p><p> else if (e.getSource() == backItem ||e.getSource() == picBack){</p><
80、p> historyIndex--; </p><p> if(historyIndex < 0) </p><p> historyIndex = 0; </p><p> url = jurl.getText();</p><p><b> try{</b></p><p&g
81、t; //獲得history對象中本地址之前訪問的地址</p><p> url = (String)history.get(historyIndex);</p><p> jEditorPane1.setPage(url); </p><p> jurl.setText(url.toString());</p><p> jEdi
82、torPane1.setEditable(false); //add by copy editor :)</p><p> jEditorPane1.revalidate (); </p><p><b> }</b></p><p> catch(Exception ex){</p><p><b>
83、 }</b></p><p><b> }</b></p><p><b> //前進(jìn)</b></p><p> else if (e.getSource() == forwardItem ||e.getSource() == picForward){</p><p> hist
84、oryIndex++; </p><p> if(historyIndex >= history.size()) </p><p> historyIndex = history.size()-1; </p><p> url = jurl.getText();</p><p><b> try{</b>&
85、lt;/p><p> //獲得history對象中本地址之后訪問的地址</p><p> url = (String)history.get(historyIndex);</p><p> jEditorPane1.setPage(url); </p><p> jurl.setText(url.toString());</p>
86、;<p> jEditorPane1.setEditable(false); //add by copy editor :)</p><p> jEditorPane1.revalidate (); </p><p><b> }</b></p><p> catch(Exception ex){</p>&
87、lt;p><b> }</b></p><p><b> }</b></p><p><b> //全屏</b></p><p> else if (e.getSource() == fullscreenItem){</p><p> boolean add_b
88、utton2=true; </p><p><b> //獲得屏幕大小</b></p><p> Dimension size = Toolkit.getDefaultToolkit().getScreenSize(); </p><p> Container content = window.getContentPane(); <
89、/p><p> content.add (bar,"North"); </p><p> content.add (scrollPane,"Center"); </p><p> //button2為點(diǎn)擊“全屏”后的還原按鈕</p><p> if(add_button2==true) {
90、</p><p> bar.add (button2); </p><p><b> } </b></p><p> //為button2添加事件</p><p> button2.addActionListener (new ActionListener () { </p><p>
91、public void actionPerformed (ActionEvent evt) { </p><p> WebBrowser.this.setEnabled (true); </p><p> window.remove (bar);</p><p> window.remove (toolBar);</p><p> w
92、indow.remove (scrollPane); </p><p> window.setVisible (false); </p><p> scrollPane.setPreferredSize (new Dimension (100,500)); </p><p> getContentPane ().add (scrollPane,B
93、orderLayout.SOUTH); </p><p> getContentPane ().add (bar,BorderLayout.CENTER); </p><p> getContentPane ().add (toolBar,BorderLayout.NORTH); </p><p> bar.remove (button2);</p>
94、;<p><b> pack(); </b></p><p><b> } </b></p><p><b> });</b></p><p> window.setSize (size); </p><p> window.setVisible (tr
95、ue); </p><p><b> }</b></p><p><b> //查看源文件</b></p><p> else if (e.getSource() == sourceItem ||e.getSource() == picView){</p><p> url = jurl.g
96、etText ().toString ().trim (); </p><p> if(url.length ()>0&&!url.startsWith ("http://")) { </p><p> url="http://"+url; </p><p><b> } </b&g
97、t;</p><p> if( !url.equals ("")) {</p><p> //根據(jù)url,獲得源代碼</p><p> getHtmlSource (url); </p><p> //生成顯示源代碼的框架對象</p><p> ViewSourceFrame vsfram
98、e = new ViewSourceFrame (htmlSource); </p><p> vsframe.setBounds (0,0,800,500); </p><p> vsframe.setVisible(true); </p><p><b> } </b></p><p><b> e
99、lse { </b></p><p> JOptionPane.showMessageDialog (WebBrowser.this,"請輸入鏈接地址","網(wǎng)頁瀏覽器",JOptionPane.ERROR_MESSAGE); </p><p><b> } </b></p><p><
100、;b> }</b></p><p><b> //刷新</b></p><p> else if (e.getSource() == reloadItem){</p><p> url=jurl.getText (); </p><p> if(url.length ()>0&&
101、amp;url.startsWith ("http://")) { </p><p><b> try { </b></p><p> jEditorPane1.setPage (url); </p><p> jEditorPane1.setEditable(false); //add by copy editor
102、:)</p><p> jEditorPane1.revalidate (); </p><p><b> } </b></p><p> catch(Exception ex) { </p><p><b> } </b></p><p><b> }
103、</b></p><p> else if(url.length ()>0&&!url.startsWith ("http://")) { </p><p> url="http://"+url; </p><p><b> try { </b></p>
104、<p> jEditorPane1.setPage (url ); </p><p> jEditorPane1.setEditable(false); //add by copy editor :)</p><p> jEditorPane1.revalidate (); </p><p><b> } </b><
105、/p><p> catch(Exception ex) { </p><p><b> } </b></p><p><b> } </b></p><p><b> }</b></p><p><b> } </b>&
106、lt;/p><p><b> /*</b></p><p><b> **保存文件</b></p><p><b> */</b></p><p> void saveFile (final String url) { </p><p> fina
107、l String linesep = System.getProperty ("line.separator"); </p><p> chooser1.setCurrentDirectory (new File (".")); </p><p> chooser1.setDialogType (JFileChooser.SAVE_DIALOG)
108、; </p><p> chooser1.setDialogTitle ("另存為..."); </p><p> if(chooser1.showSaveDialog (this) != JFileChooser.APPROVE_OPTION) </p><p><b> return; </b></p>
109、<p> this.repaint (); </p><p> Thread thread = new Thread () { </p><p> public void run () { </p><p><b> try { </b></p><p> java.net.URL source
110、= new URL (url); </p><p> InputStream in = new BufferedInputStream (source.openStream ()); </p><p> BufferedReader br=new BufferedReader (new InputStreamReader (in)); </p><p> Fi
111、le fileName = chooser1.getSelectedFile (); </p><p> FileWriter out = new FileWriter (fileName);</p><p> BufferedWriter bw = new BufferedWriter (out); </p><p> String line; </p
112、><p> while((line = br.readLine ()) != null) { </p><p> bw.write (line); </p><p> bw.newLine (); </p><p><b> } </b></p><p> bw.flush (); <
113、/p><p> bw.close (); </p><p> out.close (); </p><p> String dMessage = url + " 已經(jīng)被保存至"+ linesep +fileName.getAbsolutePath (); </p><p> String dTitle = "
114、另存為"; </p><p> int dType = JOptionPane.INFORMATION_MESSAGE; </p><p> JOptionPane.showMessageDialog ((Component) null,dMessage,dTitle,dType); </p><p><b> } </b>&l
115、t;/p><p> catch(java.net.MalformedURLException muex) { </p><p> JOptionPane.showMessageDialog ((Component)null,muex.toString (),"網(wǎng)頁瀏覽器",JOptionPane.ERROR_MESSAGE); </p><p>
116、<b> } </b></p><p> catch(Exception ex) { </p><p> JOptionPane.showMessageDialog ((Component) null,ex.toString (),"網(wǎng)頁瀏覽器",JOptionPane.ERROR_MESSAGE); </p><p>
117、;<b> } </b></p><p><b> } </b></p><p><b> }; </b></p><p> thread.start (); </p><p><b> } </b></p><p>&l
118、t;b> /*</b></p><p><b> **獲得源代碼</b></p><p><b> */</b></p><p> void getHtmlSource (String url) { </p><p> String linesep,htmlLine; &
119、lt;/p><p> linesep = System.getProperty ("line.separator"); </p><p> htmlSource =""; </p><p><b> try { </b></p><p> java.net.URL source
120、 = new URL (url); </p><p> InputStream in = new BufferedInputStream (source.openStream ()); </p><p> BufferedReader br = new BufferedReader ( new InputStreamReader (in)); </p><p>
121、 while((htmlLine = br.readLine ())!=null) { </p><p> htmlSource = htmlSource +htmlLine+linesep; </p><p><b> } </b></p><p><b> } </b></p><p>
122、 catch(java.net.MalformedURLException muex) { </p><p> JOptionPane.showMessageDialog (WebBrowser.this,muex.toString (),"網(wǎng)頁瀏覽器",JOptionPane.ERROR_MESSAGE); </p><p><b> } </b
123、></p><p> catch(Exception e) { </p><p> JOptionPane.showMessageDialog (WebBrowser.this,e.toString (),"網(wǎng)頁瀏覽器",JOptionPane.ERROR_MESSAGE); </p><p><b> } </b&g
124、t;</p><p><b> }</b></p><p><b> /**</b></p><p> **實(shí)現(xiàn)監(jiān)聽器接口的hyperlinkUpdate函數(shù)</p><p><b> */</b></p><p> public void h
125、yperlinkUpdate (HyperlinkEvent e) { </p><p> if(e.getEventType () == HyperlinkEvent.EventType.ACTIVATED) { </p><p> String url = jurl.getText();</p><p> if(url.length ()>0&
126、;&url.startsWith ("http://")) { </p><p><b> try { </b></p><p> jEditorPane1.setPage (url); </p><p> jEditorPane1.revalidate (); </p><p><
127、;b> } </b></p><p> catch(Exception ex) { </p><p><b> } </b></p><p><b> } </b></p><p> else if(url.length ()>0&&!url.sta
128、rtsWith ("http://")) { </p><p> url="http://"+url; </p><p><b> try { </b></p><p> jEditorPane1.setPage (url ); </p><p> jEditorPane1
129、.revalidate (); </p><p><b> } </b></p><p> catch(Exception ex) { </p><p><b> } </b></p><p><b> } </b></p><p><b&
130、gt; } </b></p><p> // Revised by copy editor :) Now with new code to help hyperlink</p><p><b> try {</b></p><p> if (e.getEventType() == HyperlinkEvent.EventTy
131、pe.ACTIVATED)</p><p> jEditorPane1.setPage(e.getURL());</p><p> } catch (Exception ex) {</p><p> ex.printStackTrace(System.err);</p><p><b> }</b></p&
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)頁瀏覽器--java課程設(shè)計(jì)
- java瀏覽器課程設(shè)計(jì)--web瀏覽器開發(fā)
- 圖片瀏覽器課程設(shè)計(jì)報(bào)告
- 圖片瀏覽器課程設(shè)計(jì)報(bào)告
- 圖片瀏覽器課程設(shè)計(jì)報(bào)告.doc
- 圖片瀏覽器課程設(shè)計(jì)報(bào)告(vb)
- 基于java的瀏覽器的設(shè)計(jì)
- 網(wǎng)絡(luò)編程課程設(shè)計(jì)報(bào)告--圖片瀏覽器
- 基于JAVA的瀏覽器的設(shè)計(jì).doc
- c++面向?qū)ο笳n程設(shè)計(jì)報(bào)告--瀏覽器
- vb課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告---圖片瀏覽器
- vb課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告---圖片瀏覽器
- 我像網(wǎng)頁瀏覽器一樣思維
- 不動端瀏覽器設(shè)計(jì)
- 基于java網(wǎng)絡(luò)瀏覽器的開發(fā)與實(shí)現(xiàn)
- 基于嵌入式瀏覽器的Java支持.pdf
- 使用網(wǎng)頁瀏覽器設(shè)置天寶bd982接收器
- PC機(jī)上基于IE內(nèi)核的網(wǎng)頁瀏覽器開發(fā).pdf
- 基于java網(wǎng)絡(luò)瀏覽器的開發(fā)與實(shí)現(xiàn)
- 面向Linux的瀏覽器惡意網(wǎng)頁檢測系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
評論
0/150
提交評論