j課程設(shè)計(jì):ava程序設(shè)計(jì)_第1頁
j課程設(shè)計(jì):ava程序設(shè)計(jì)_第2頁
j課程設(shè)計(jì):ava程序設(shè)計(jì)_第3頁
j課程設(shè)計(jì):ava程序設(shè)計(jì)_第4頁
j課程設(shè)計(jì):ava程序設(shè)計(jì)_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、*學(xué)院計(jì)算機(jī)系課程設(shè)計(jì)報(bào)告課程名稱:Java程序設(shè)計(jì)課程代碼:408026題 目:網(wǎng)頁瀏覽器開發(fā)年級(jí)/專業(yè)/班:學(xué)生姓名:學(xué) 號(hào):指導(dǎo)老師:開題時(shí)間:2008年12月15日完成時(shí)間:2009年01月03日2009年元月5日課程設(shè)計(jì)任務(wù)書及成績(jī)?cè)u(píng)定課程名稱:Java程序設(shè)計(jì)完成者:1、設(shè)計(jì)的目的與要求 本課程設(shè)計(jì)需要學(xué)生運(yùn)用面向?qū)ο缶幊毯途W(wǎng)絡(luò)編程方法等,建立模型,最后設(shè)計(jì)出一個(gè)簡(jiǎn)單的網(wǎng)頁瀏覽器,使該瀏覽器具有打開內(nèi)容簡(jiǎn)單的網(wǎng)頁,以及將網(wǎng)頁另存,網(wǎng)頁前進(jìn)和后退,并且能夠查看所瀏覽網(wǎng)頁的源代碼。2、設(shè)計(jì)進(jìn)度及完成情況日 期內(nèi) 容2008.12.1517查找相關(guān)資料,選取課題,做好相關(guān)準(zhǔn)備工作2008

2、.12.1819借助網(wǎng)絡(luò)及有關(guān)書籍對(duì)課題進(jìn)一步了解,理清大概脈絡(luò)2008.12. 2022根據(jù)資料及程序框架編寫相關(guān)程序整理程序并對(duì)其進(jìn)行修改,運(yùn)行改進(jìn)程序,使其專業(yè)化、完美化 整理網(wǎng)頁瀏覽器的設(shè)計(jì)、功能、結(jié)果、編寫目錄2008.12.2631發(fā)送電子文檔,打印并裝訂,完成3、成績(jī)?cè)u(píng)定設(shè)計(jì)成績(jī): (教師填寫)指導(dǎo)老師: (簽 字)二00九 年 月 日目 錄摘 要I1 引言12 設(shè)計(jì)任務(wù)與目的13 需求分析14 系統(tǒng)設(shè)計(jì)24.1 總體設(shè)計(jì)24.1.1 WebBrowser.java24.1.2 ViewSourceFrame.java24.2 用例圖與類圖24.2.1 用例圖24.2.2 系統(tǒng)類

3、圖35 系統(tǒng)實(shí)現(xiàn)45.1.主要功能運(yùn)行效果45.2系統(tǒng)運(yùn)行和發(fā)布66 結(jié)束語7參考文獻(xiàn)7致謝7附錄A:系統(tǒng)源程序7附錄B:編碼規(guī)范26摘 要本設(shè)計(jì)可以幫助同學(xué)掌握和應(yīng)運(yùn)所學(xué)的面向?qū)ο蟪绦蛟O(shè)計(jì)網(wǎng)頁編程內(nèi)容,培養(yǎng)同學(xué)們建立對(duì)象模型,處理對(duì)象和對(duì)象集關(guān)系和對(duì)網(wǎng)絡(luò)編程的能力,訓(xùn)練同學(xué)為解決實(shí)際問題而創(chuàng)建較完整的簡(jiǎn)單面向?qū)ο蠛途W(wǎng)絡(luò)編程應(yīng)運(yùn)程序的獨(dú)立編程能力.本設(shè)計(jì)是一個(gè)常見的網(wǎng)頁瀏覽器應(yīng)運(yùn)程序.系統(tǒng)實(shí)現(xiàn)的功能:l 打開url鏈接相關(guān)的網(wǎng)頁;將網(wǎng)頁另存為到硬盤上;網(wǎng)頁前進(jìn);網(wǎng)頁后退;查看網(wǎng)頁源代碼.同時(shí)此瀏覽器所占內(nèi)存空間小,對(duì)于硬件的要求低,對(duì)于經(jīng)常上網(wǎng)查資料的用戶來說是一個(gè)不錯(cuò)的選擇。關(guān)鍵詞:網(wǎng)頁瀏覽

4、器;網(wǎng)頁;java網(wǎng)頁瀏覽器開發(fā)1 引言本課題的題目是:用簡(jiǎn)單的java編程編寫一個(gè)簡(jiǎn)單的網(wǎng)頁瀏覽器。.這是一個(gè)常見的網(wǎng)頁瀏覽器應(yīng)運(yùn)程序.有以下學(xué)習(xí)要點(diǎn):l 面向?qū)ο笤O(shè)計(jì)的方法l 網(wǎng)絡(luò)編程編寫的方法l GUI圖形界面的設(shè)計(jì)方法和Swing相關(guān)組建的靈活運(yùn)用l 熟練事件處理機(jī)制l 熟悉掌握輸入輸出流2 設(shè)計(jì)任務(wù)與目的隨著科學(xué)技術(shù)的發(fā)展,我們已進(jìn)入信息化時(shí)代,互聯(lián)網(wǎng)在全球的應(yīng)用越來越廣泛,它已深入到我們學(xué)習(xí)生活的各個(gè)方面。為了適應(yīng)時(shí)代的發(fā)展,本次課程設(shè)計(jì)的主要任務(wù)是制作一個(gè)網(wǎng)頁瀏覽器并完成一些基本操作。其目的是:(1) 運(yùn)用已學(xué)的java知識(shí)編一些簡(jiǎn)單使用的程序,通過本課程設(shè)計(jì)使我們加深理解、鞏固

5、課堂理論知識(shí)和實(shí)驗(yàn)知識(shí);(2) 使我們初步具備綜合運(yùn)用所學(xué)Java語言基礎(chǔ)知識(shí),面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思想、方法與技術(shù),網(wǎng)絡(luò)通信編程技術(shù)和數(shù)據(jù)庫編程技術(shù)等開發(fā)簡(jiǎn)單應(yīng)用系統(tǒng)的基本能力;(3) 使理論和實(shí)際相結(jié)合,真正做到學(xué)以致用,并適應(yīng)時(shí)代發(fā)展的潮流。3 需求分析此網(wǎng)頁瀏覽器的主要功能描述:通過在地址欄里面輸入U(xiǎn)RL地址,可以訪問相應(yīng)的網(wǎng)頁。除此之外,本案例中的網(wǎng)頁瀏覽器還增添了如下幾個(gè)功能。1 另存為:可以將正在訪問的頁面進(jìn)行保存。2 前進(jìn):訪問現(xiàn)有頁面的上一個(gè)頁面。3 后退:訪問現(xiàn)有頁面的下一個(gè)頁面。4 查看源文件:查看訪問頁面的HTML源文件,并且提供保存功能。4 系統(tǒng)設(shè)計(jì)4.1 總體設(shè)計(jì)

6、網(wǎng)頁瀏覽器的程序由文件WebBrowser.java與ViewSourceFrame.java兩個(gè)文件組成。4.1.1 WebBrowser.java包含名為WebBrowser的public類,其主要功能為生成網(wǎng)頁瀏覽器的主體框架,實(shí)現(xiàn)框架上各個(gè)組件的事件偵聽。主要包括4個(gè)模塊:圖形用戶界面的構(gòu)建:組件監(jiān)聽接口的實(shí)現(xiàn):文件保存功能的實(shí)現(xiàn):查看源代碼框架的生成。4.1.2 ViewSourceFrame.java包含名為ViewSourceFrame的類,其主要功能是實(shí)現(xiàn)了源文件查看的主體框架,并實(shí)現(xiàn)了源文件的保存功能。主要包括兩個(gè)模塊:圖形用戶界面的構(gòu)建:組件監(jiān)聽接口的實(shí)現(xiàn)。4.2 用例圖與

7、類圖4.2.1 用例圖4.2.1用例圖4.2.2 系統(tǒng)類圖4.2.2系統(tǒng)類圖5 系統(tǒng)實(shí)現(xiàn)5.1 主要功能運(yùn)行效果1.輸入url: 單擊轉(zhuǎn)向或回車,進(jìn)入網(wǎng)頁頁面;3.進(jìn)入網(wǎng)頁之后,點(diǎn)擊界面的源代碼按鈕,即可查看該網(wǎng)頁的源代碼,如圖5.1.3;5.2系統(tǒng)運(yùn)行和發(fā)布要發(fā)布這個(gè)應(yīng)用程序,就應(yīng)該將應(yīng)用程序打包。使用jar.exe,可以把應(yīng)用程序中涉及到的類和圖片壓縮成一個(gè)jar文件,這樣便可以發(fā)布程序。首先編寫一個(gè)清單文件,名為MANIFEST.MF,其代碼如下:Mainfest-version:1.0Created-by:1.5.0_02(Sun Microsystems Inc.)Main-Clas

8、s:WebBrowser此清單文件保存到C:JavaworkCH04.然后,使用如下命令生成jar文件:Jar cfm WebBrowser.jar MANIFEST.MF * .class其中參數(shù)c表示要生成一個(gè)新的jar文件:f表示要僧成的jar文件的名字:m表示清單文件的名字如果機(jī)器安裝過WinRAR解壓縮軟件,并將jar文件與該解壓縮軟件做了關(guān)聯(lián),那么WebBrow.jar文件的類型是WinRAR,使得java程序無法運(yùn)行。因此,在發(fā)布軟件時(shí),還應(yīng)該再寫一個(gè)有如下內(nèi)容的bat文件(WebBrowser.bat):Javaw-jar WebBrowser.jar可以通過雙擊WebBrow

9、ser.bat來運(yùn)行程序。6 結(jié)束語 剛聽到課程設(shè)計(jì)時(shí),就有一種畏難心理。我們現(xiàn)在所學(xué)的java知識(shí)九牛一毛,要編寫一個(gè)幾百甚至上千行的代碼似乎不可能。但是當(dāng)我們上網(wǎng)查找過只是一些資料后,許多題目都是由學(xué)生在老師的指導(dǎo)下做出來的,一些還有源代碼。世上無難事,只怕有心人。于是我們?nèi)M的人開始分工合作,大家先一起搜索一些資料,然后根據(jù)各自負(fù)責(zé)的部分有目的地篩選。雖然我們天天在瀏覽網(wǎng)頁,但是以前從沒想過為什么輸入一個(gè)網(wǎng)址就可以找到所需要的信息。通過此次網(wǎng)頁瀏覽器的設(shè)計(jì),使我們對(duì)網(wǎng)頁有了更深層次的了解。不過也存在一些問題,在實(shí)現(xiàn)對(duì)網(wǎng)址的保存和當(dāng)前頁面的前進(jìn)和后退功能后,應(yīng)該可以新增一些新的功能,例如在

10、當(dāng)前的頁面再次點(diǎn)擊進(jìn)入其他頁.、刷新當(dāng)前頁面等等,“書山有路勤為徑,學(xué)海無涯苦作舟”,我們現(xiàn)今所學(xué)的知識(shí)還遠(yuǎn)遠(yuǎn)不夠,在今后的學(xué)習(xí)過程中我們要進(jìn)一步學(xué)習(xí)java的更多的知識(shí),此次課程設(shè)計(jì)不僅鍛煉了我們獨(dú)立思考和團(tuán)隊(duì)合作的能力,而且提高了我們動(dòng)手的能力。參考文獻(xiàn)1 張廣彬,孟紅蕊,張永寶.Java課程設(shè)計(jì)案例精編M.北京:清華大學(xué)出社,2007,1.2 黃曉東.Java課程設(shè)計(jì)案例精編M.北京:中國(guó)水利水電出版社,2004,5.3 求是科技. Java信息管理系統(tǒng)開發(fā)實(shí)例導(dǎo)航M.北京:人民郵電出版社,2005,4.4 求是科技.Java數(shù)據(jù)庫系統(tǒng)開發(fā)實(shí)例導(dǎo)航M.北京:人民郵電出版社,2004,9.

11、5李芝興.Java程序設(shè)計(jì)之網(wǎng)絡(luò)編程M.北京:清華大學(xué)出版社,2006,3.6劉藝,吳英.Java程序設(shè)計(jì)大學(xué)教程M.北京:機(jī)械工業(yè)出版社,2006,2致謝在本次程序設(shè)計(jì)過程中,*老師給予了我們極大的支持與指導(dǎo),在此表示感謝!同時(shí)也感謝給予我們建議和意見的同學(xué)們!附錄A:系統(tǒng)源程序import java.awt.datatransfer.Clipboard;import java.awt.datatransfer.DataFlavor;import java.awt.datatransfer.Transferable;import java.awt.event.MouseListener;im

12、port java.awt.*;import javax.swing.*;import javax.swing.text.*;import java.awt.event.*;import javax.swing.event.*;import javax.swing.border.*;import javax.swing.filechooser.FileFilter;import javax.swing.filechooser.FileView;import java.io.*;import .*;import java.util.*;public class WebBrowser extend

13、s JFrame implements HyperlinkListener,ActionListener /* * Creates a new instance of <code>WebBrowser</code>. */ /. /. /建立主件 JToolBar bar =new JToolBar();/工具欄 JTextField jurl=new JTextField(60);/地址欄 JEditorPane2 jEditorPane1=new JEditorPane2();/網(wǎng)頁框 JScrollPane scrollPane=new JScrollPane(j

14、EditorPane1);/滾動(dòng)條 JFileChooser chooser=new JFileChooser(); JFileChooser chooser1=new JFileChooser();/選擇文件 String htmlSource; JWindow window=new JWindow(WebBrowser.this);/使用指定的所有者框架創(chuàng)建窗口 JButton button2=new JButton("窗口還原"); Toolkit toolkit=Toolkit.getDefaultToolkit();/獲取默認(rèn)工具包 JMenuBar jMenuB

15、ar1=new JMenuBar();/建立菜單欄 JMenu fileMenu=new JMenu("文件(F)");/建立菜單組 JMenuItem saveAsItem=new JMenuItem("另存為(S)"); JMenuItem exitItem=new JMenuItem("退出(E)"); JMenu editMenu=new JMenu("編輯(E)");/建立菜單組 JMenuItem backItem=new JMenuItem("后退(Z)"); JMenuItem

16、forwardItem=new JMenuItem("前進(jìn)(P)"); JMenu viewMenu=new JMenu("視圖(V)");/建立菜單組 JMenuItem fullscreenItem=new JMenuItem("全屏(U)"); JMenuItem sourceItem=new JMenuItem("查看源代碼(C)"); JMenuItem reloadItem=new JMenuItem("刷新(R)"); JToolBar toolBar=new JToolBar()

17、; JButton picSave=new JButton("另存為"); JButton picBack=new JButton("后退"); JButton picForward=new JButton("前進(jìn)"); JButton picView=new JButton("查看源代碼"); JButton picExit=new JButton("退出"); /建立工具欄 JLabel label=new JLabel("地址"); JButton button=new

18、 JButton("轉(zhuǎn)向"); Box adress=Box.createHorizontalBox(); /創(chuàng)建一個(gè)從左到右顯示其組件 Box adressSource=Box.createHorizontalBox(); private ArrayList history=new ArrayList(); private int historyIndex; public WebBrowser() setTitle("網(wǎng)頁瀏覽器"); setResizable(false);/設(shè)置此 frame 是否可由用戶調(diào)整大小 setDefaultCloseOp

19、eration(JFrame.EXIT_ON_CLOSE); jEditorPane1.addHyperlinkListener(this);/事件監(jiān)聽 fileMenu.setMnemonic('F'); saveAsItem.setMnemonic('S'); saveAsItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK); exitItem.setMnemonic('P'); exitItem.setAccelerator(KeyStr

20、oke.getKeyStroke(KeyEvent.VK_E,InputEvent.CTRL_MASK); /設(shè)置熱鍵 fileMenu.add(saveAsItem); fileMenu.addSeparator(); fileMenu.add(exitItem); backItem.setMnemonic('B'); backItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,InputEvent.CTRL_MASK); forwardItem.setMnemonic('D'); forwardI

21、tem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK); editMenu.setMnemonic('E'); editMenu.add(backItem); editMenu.addSeparator(); editMenu.add(forwardItem); viewMenu.setMnemonic('V'); fullscreenItem.setMnemonic('U'); fullscreenItem.setAccelerator(KeyS

22、troke.getKeyStroke(KeyEvent.VK_U,InputEvent.CTRL_MASK); sourceItem.setMnemonic('C'); sourceItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK); reloadItem.setMnemonic('R'); reloadItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R,InputEvent.CTRL_MASK)

23、; Container contentPane=getContentPane(); scrollPane.setPreferredSize(new Dimension(100,500); contentPane.add(scrollPane,BorderLayout.SOUTH); toolBar.add(picSave); toolBar.addSeparator(); toolBar.add(picBack); toolBar.addSeparator(); toolBar.add(picForward); toolBar.addSeparator(); toolBar.add(picVi

24、ew); toolBar.addSeparator(); toolBar.add(picExit); toolBar.addSeparator(); toolBar.add(picExit); toolBar.addSeparator(); toolBar.add(adressSource); contentPane.add(bar,BorderLayout.CENTER); contentPane.add(toolBar,BorderLayout.NORTH); viewMenu.add(fullscreenItem); viewMenu.addSeparator(); viewMenu.a

25、dd(sourceItem); viewMenu.addSeparator(); viewMenu.add(reloadItem); jMenuBar1.add(fileMenu); jMenuBar1.add(editMenu); jMenuBar1.add(viewMenu); setJMenuBar(jMenuBar1); adress.add(label); adress.add(jurl); adress.add(button); bar.add(adress); saveAsItem.addActionListener(this); picSave.addActionListene

26、r(this); exitItem.addActionListener(this); picExit.addActionListener(this); backItem.addActionListener(this); picBack.addActionListener(this); forwardItem.addActionListener(this); picForward.addActionListener(this); fullscreenItem.addActionListener(this); sourceItem.addActionListener(this); picView.

27、addActionListener(this); reloadItem.addActionListener(this); button.addActionListener(this); jurl.addActionListener(this); /. /. public void actionPerformed(ActionEvent e) String url="" if(e.getSource()=button) /按down. url=jurl.getText(); if(url.length()>0&&url.startsWith("

28、http:/") try jEditorPane1.setPage(url); history.add(url); historyIndex=history.size()-1;/ 返回此列表中的元素?cái)?shù) jEditorPane1.setEditable(false); jEditorPane1.revalidate(); catch(Exception ex) JOptionPane.showMessageDialog(WebBrowser.this,"不能打開網(wǎng)頁","網(wǎng)頁瀏覽器",JOptionPane.ERROR_MESSAGE); els

29、e if(url.length()>0&&!url.startsWith("http:/") url="http:/"+url; try jEditorPane1.setPage(url); history.add(url); historyIndex=history.size()-1;/ 返回此列表中的元素?cái)?shù) jEditorPane1.setEditable(false); jEditorPane1.revalidate(); catch(Exception ex) JOptionPane.showMessageDialog(We

30、bBrowser.this,"不能打開網(wǎng)頁","網(wǎng)頁瀏覽器",JOptionPane.ERROR_MESSAGE); else if(url.length()=0) JOptionPane.showMessageDialog(WebBrowser.this,"不能打開網(wǎng)頁","網(wǎng)頁瀏覽器",JOptionPane.ERROR_MESSAGE); /.按回車 else if(e.getSource()=jurl) url=jurl.getText(); if(url.length()>0&&ur

31、l.startsWith("http:/") try jEditorPane1.setPage(url); history.add(url); historyIndex=history.size()-1;/ 返回此列表中的元素?cái)?shù) jEditorPane1.setEditable(false); jEditorPane1.revalidate(); jurl.setMaximumSize(jurl.getPreferredSize(); catch(Exception ex) JOptionPane.showMessageDialog(WebBrowser.this,&quo

32、t;不能打開網(wǎng)頁","網(wǎng)頁瀏覽器",JOptionPane.ERROR_MESSAGE); else if(url.length()>0&&!url.startsWith("http:/") url="http:/"+url; try jEditorPane1.setPage(url); history.add(url); historyIndex=history.size()-1;/ 返回此列表中的元素?cái)?shù) jEditorPane1.setEditable(false); jEditorPane1.re

33、validate(); catch(Exception ex) JOptionPane.showMessageDialog(WebBrowser.this,"不能打開網(wǎng)頁","網(wǎng)頁瀏覽器",JOptionPane.ERROR_MESSAGE); else if(url.length()=0) JOptionPane.showMessageDialog(WebBrowser.this,"不能打開網(wǎng)頁","網(wǎng)頁瀏覽器",JOptionPane.ERROR_MESSAGE); /.另存為 else if(e.getSou

34、rce()=picSave|e.getSource()=saveAsItem) url=jurl.getText().trim();/去掉字符串頭和尾的空格 if(url.length()>0&&!url.startsWith("http:/") url="http:/"+url; if(!url.equals("") saveFile(url); else JOptionPane.showMessageDialog(WebBrowser.this,"請(qǐng)輸入鏈接地址","網(wǎng)頁瀏覽器&

35、quot;,JOptionPane.ERROR_MESSAGE); /exit. else if(e.getSource()=exitItem|e.getSource()=picExit) System.exit(0); /back. else if(e.getSource()=backItem|e.getSource()=picBack) historyIndex-; if(historyIndex<0) historyIndex=0; url=jurl.getText(); try url=(String)history.get(historyIndex); jEditorPane1

36、.setPage(url); jurl.setText(url.toString(); jEditorPane1.setEditable(false); jEditorPane1.revalidate(); /* *public void revalidate()支持推遲的自動(dòng)布局。 調(diào)用 invalidate 并將此組件的 validateRoot 添加到需要驗(yàn)證的組件列表中。調(diào)度完當(dāng)前所有未完成的事件后進(jìn)行驗(yàn)證。換句話說,調(diào)用此方法后,將驗(yàn)證瀏覽此組件的包含層次結(jié)構(gòu)時(shí)找到的第一個(gè) validateRoot(如果有)。默認(rèn)情況下,JRootPane、JScrollPane 和 JTextFi

37、eld 從 isValidateRoot 返回 true。 當(dāng)屬性值更改,從而影響此組件的大小、位置或內(nèi)部布局時(shí),就對(duì)此組件自動(dòng)調(diào)用此方法。這種自動(dòng)更新不同于 AWT,因?yàn)橥ǔ碚f,程序不再需要調(diào)用 validate 來獲得要更新的 GUI 的內(nèi)容。 * */ catch(Exception ex) /forworad. else if(e.getSource()=forwardItem|e.getSource()=picForward) historyIndex+; if(historyIndex>=history.size() historyIndex=history.size()-

38、1; url=jurl.getText(); try url=(String)history.get(historyIndex); jEditorPane1.setPage(url); jurl.setText(url.toString(); jEditorPane1.setEditable(false); jEditorPane1.revalidate(); catch(Exception ex) /fullscreen else if(e.getSource()=fullscreenItem) boolean add_button2=true; /查看原文件 else if(e.getSo

39、urce()=sourceItem|e.getSource()=picView) url=jurl.getText().toString().trim(); if(url.length()>0&&!url.startsWith("http:/") url="http:/"+url; if(!url.equals("") getHtmlSource(url); ViewSourceFrame vsframe=new ViewSourceFrame(htmlSource); vsframe.setBounds(0,0

40、,800,500); vsframe.setVisible(true); else JOptionPane.showMessageDialog(WebBrowser.this,"請(qǐng)輸入鏈接地址","網(wǎng)頁瀏覽器",JOptionPane.ERROR_MESSAGE); /.收藏夾 /. /刷新 else if(e.getSource()=reloadItem) url=jurl.getText(); if(url.length()>0&&url.startsWith("http:/") try jEditorPan

41、e1.setPage(url); jEditorPane1.setEditable(false); jEditorPane1.revalidate(); catch(Exception ex) else if(url.length()>0&&!url.startsWith("http:/") url="http:/"+url; try jEditorPane1.setPage(url); jEditorPane1.setEditable(false); jEditorPane1.revalidate(); catch(Excepti

42、on ex) /.savefile void saveFile(final String url) final String linesep=System.getProperty("line.separator");/獲得指定鍵指示的系統(tǒng)屬性 chooser1.setCurrentDirectory(new File(".");/設(shè)置當(dāng)前目錄 chooser1.setDialogType(JFileChooser.SAVE_DIALOG);/設(shè)置此對(duì)話框的類型,|指示 JFileChooser 支持 "Save" 文件操作的類型值 c

43、hooser1.setDialogTitle("另存為");/設(shè)置顯示在 JFileChooser 窗口標(biāo)題欄的字符串 if(chooser1.showSaveDialog(this)!=JFileChooser.APPROVE_OPTION)/ 彈出一個(gè) "Save File" 文件選擇器對(duì)話框|選擇確認(rèn)(yes、ok)后返回該值 return; this.repaint(); Thread thread=new Thread() public void run() try .URL source=new URL(url); InputStream i

44、n=new BufferedInputStream(source.openStream();/ BufferedReader br=new BufferedReader(new InputStreamReader(in); File fileName=chooser1.getSelectedFile();/返回選中的文件 FileWriter out=new FileWriter(fileName); BufferedWriter bw=new BufferedWriter(out); String line; while(line=br.readLine()!=null) bw.write(

45、line); bw.newLine();/寫入一個(gè)行分隔符 bw.flush(); bw.close(); out.close(); String dMessage=url+" 已經(jīng)被保存至"+linesep+fileName.getAbsolutePath();/返回抽象路徑名的絕對(duì)路徑名字符串 String dTitle="另存為" int dType=JOptionPane.INFORMATION_MESSAGE; JOptionPane.showMessageDialog(Component)null,dMessage,dTitle,dType)

46、; catch(.MalformedURLException muex) JOptionPane.showMessageDialog(Component)null,muex.toString(),"網(wǎng)頁瀏覽器",JOptionPane.ERROR_MESSAGE); catch(Exception ex) JOptionPane.showMessageDialog(Component)null,ex.toString(),"網(wǎng)頁瀏覽器",JOptionPane.ERROR_MESSAGE); ; thread.start(); /. /getsource void getHtmlSource (String url) String linesep,htmlLine; linesep=S

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論