版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 課 程 設(shè) 計(jì)</b></p><p><b> JAVA記事本設(shè)計(jì)</b></p><p><b> 摘要</b></p><p> 該報(bào)告中的程序是使用Java程序編寫,能夠進(jìn)行輸入文字操作,并具有新建文件,打開文件,保存文件,退出,復(fù)制,粘貼,剪切等功能,不同
2、之處是本程序能夠?qū)ξ淖值念伾M(jìn)行設(shè)置。該程序主要用到了Java swing和事件監(jiān)聽等。</p><p> 關(guān)鍵字:記事本程序;Java語言;Jcreator</p><p><b> 前言</b></p><p> Java的前身是Oak,它一開始只是被應(yīng)用于消費(fèi)性電子產(chǎn)品中。后來它的開發(fā)者們發(fā)現(xiàn)它還可以被用于更大范圍的Internet
3、上。1995年,Java語言的名字從Oak編程了Java。1997年J2SE1.1發(fā)布。1998年J2SE1.2發(fā)布,標(biāo)志Java2的誕生。十多年來,Java編程語言及平臺(tái)成功地運(yùn)用在網(wǎng)絡(luò)計(jì)算及移動(dòng)等各個(gè)領(lǐng)域。Java的體系結(jié)構(gòu)由Java語言、Java class、Java API、Java虛擬機(jī)組成。它具有簡(jiǎn)單、面向?qū)ο蟆⒔?、安全、結(jié)構(gòu)中立、可移植和高效能等眾多優(yōu)點(diǎn)。Java支持多線程編程,Java運(yùn)行時(shí)系統(tǒng)在多線程同步方面具有成熟
4、的解決方案。Java的平臺(tái)標(biāo)準(zhǔn)有Java ME,Java SE和Java EE。Java發(fā)展到今天,它的卓越成就及在業(yè)界的地位毋庸置疑。目前在眾多的支持Java的開發(fā)工具中主要的7有Java Development Kit,NetBeans,Jcreator,JBuilder,JDeveloper和Eclipse等。其中Java Development Kit 簡(jiǎn)稱JDK是大多開發(fā)工具的基礎(chǔ)。以上的每種開發(fā)工具都有優(yōu)缺點(diǎn),對(duì)于開發(fā)者來&
5、lt;/p><p> 在本程序設(shè)計(jì)中,因?yàn)樾枰_發(fā)的是記事本程序,規(guī)模較小,內(nèi)容較少,所以選擇了適合初學(xué)者使用的JCreator開發(fā)工具。</p><p><b> 1需求分析</b></p><p><b> 1.1需求分析</b></p><p> 現(xiàn)在網(wǎng)絡(luò)上各種文檔編輯器數(shù)不勝數(shù),有Em
6、Editor ,UEStudio ,GridinSoft Notepad ,Notepad++,win32pad ,SkimEdit,UniRed, xint 。功能也是應(yīng)有盡有,有能改變字體的,有能改變文字顏色的。但是,這些軟件又存在各種各樣的瑕疵或問題:有的文件體積相對(duì)于一般文字編輯來說太大;有的功能太繁雜,使初級(jí)使用者一時(shí)難以掌握。僅從日常應(yīng)用方面來說,一個(gè)文本編輯器只需一些簡(jiǎn)單實(shí)用的功能就夠了。本程序設(shè)計(jì)就是依照這樣一種使用需要
7、設(shè)計(jì)了一個(gè)簡(jiǎn)單的記事本程序。</p><p><b> 1.2功能設(shè)計(jì)</b></p><p> 本程序要構(gòu)建的記事本程序參照了Windows操作系統(tǒng)的記事本工具,其功能有以下幾個(gè)方面:</p><p> (1).菜單中有“文件”,“編輯”,“關(guān)于”三個(gè)主菜單。</p><p> (2)“文件”有“新建”“打開”
8、“保存”“退出”四個(gè)子菜單:分別用于新建文件,打開文件,保存文件,退出記事本。</p><p> ?。?)“編輯”中有“剪切”“復(fù)制”“粘貼”“顏色”三個(gè)字菜單:用于剪切文字,復(fù)制文字,粘貼文字。 </p><p> (4)“關(guān)于”菜單中有關(guān)于記事本程序的版本,作者等信息</p><p><b> 2.概要設(shè)計(jì)</b&g
9、t;</p><p><b> 2.1程序設(shè)計(jì)思路</b></p><p> 在本程序中,設(shè)計(jì)了一個(gè)菜單欄和文本內(nèi)容區(qū)。設(shè)計(jì)過程中用到了JScrollPane,JMenu,JTextPane,JFileChooser等。JMenu用來制作菜單,菜單包括“文件”“編輯”“關(guān)于”。JTextPane主要用來輸入文本。</p><p><b
10、> 2.2模塊說明圖</b></p><p><b> 圖1</b></p><p> 在圖1中,首先創(chuàng)建一個(gè)名為jsb的類并繼承JFrame類作為最底層的容器。</p><p> 圖2 </p><p><b>
11、; 2.3程序流程圖</b></p><p> False False </p><p> true true true true true true true</p><p><b> 圖3</b></p><p>
12、;<b> 3系統(tǒng)詳細(xì)設(shè)計(jì)</b></p><p><b> 1:界面設(shè)計(jì)</b></p><p> 創(chuàng)建一個(gè)下拉菜單和文本域,在文本域中顯示編輯的文件信息。</p><p> f=new Frame(s); </p><p> p1=new TextArea("")
13、; </p><p> f.setSize(400,600); </p><p> f.setBackground(Color.white); </p><p> f.setVisible(true); </p><p> menubar=new MenuBar(); </p><p> menu1=new
14、Menu("文件"); </p><p> menu2=new Menu("編輯"); </p><p> menu3=new Menu("幫助"); </p><p> item1=new MenuItem("新建"); </p><p> item2=
15、new MenuItem("打開"); </p><p> item3=new MenuItem("保存"); </p><p> item4=new MenuItem("另存為"); </p><p> item5=new MenuItem("退出"); </p>
16、<p> item6=new MenuItem("全選"); </p><p> item7=new MenuItem("復(fù)制"); </p><p> item8=new MenuItem("剪切"); </p><p> item9=new MenuItem("粘貼"
17、;); </p><p> item10=new MenuItem("關(guān)于");</p><p> menu1.add(item1); </p><p> menu1.add(item2); </p><p> menu1.add(item4); </p><p> menu1.add(i
18、tem5); </p><p> menu2.add(item6); </p><p> menu2.add(item7); </p><p> menu2.add(item8); </p><p> menu2.add(item9); </p><p> menu3.add(item10); </p&
19、gt;<p> menubar.add(menu1); </p><p> menubar.add(menu2); </p><p> menubar.add(menu3); </p><p> f.setMenuBar(menubar);</p><p><b> 2:功能設(shè)計(jì)</b></
20、p><p> 對(duì)每個(gè)菜單項(xiàng)進(jìn)行注冊(cè)監(jiān)聽。點(diǎn)擊不同菜單項(xiàng)時(shí),顯示不同界面。</p><p><b> 主要代碼</b></p><p> item1.addActionListener(this); </p><p> item2.addActionListener(this); </p><p&g
21、t; item3.addActionListener(this); </p><p> item4.addActionListener(this); </p><p> item5.addActionListener(this); </p><p> item6.addActionListener(this); </p><p>
22、item7.addActionListener(this); </p><p> item8.addActionListener(this); </p><p> item9.addActionListener(this); </p><p> item10.addActionListener(this);</p><p><b&
23、gt; 3:菜單設(shè)計(jì)</b></p><p> 部分菜單項(xiàng)的相關(guān)代碼:</p><p><b> 新建文件</b></p><p> if (e.getSource()==item1) </p><p> { if (i==0&&(ss.length()!=0)){ bc(); }&
24、lt;/p><p><b> else </b></p><p> p1.setText("");i=0;f.setTitle("文件對(duì)話框"); }</p><p><b> 打開文件</b></p><p> if (e.getSource()==it
25、em2)</p><p> { fd=new FileDialog(f,"打開文件",0);</p><p> fd.setVisible(true); </p><p> try{ file=new File(fd.getDirectory(),fd.getFile()); </p><p> f.setTitl
26、e(fd.getFile()+"文件對(duì)話框"); </p><p> FileReader fr=new FileReader(file); </p><p> BufferedReader br=new BufferedReader(fr); </p><p> String line = null; </p><p&
27、gt; String view = ""; </p><p> while((line=br.readLine())!=null) </p><p> { view += line+"\n"; } </p><p> p1.setText(view); </p><p> br.close()
28、; </p><p> fr.close(); } </p><p> catch(IOException expIn) </p><p><b> {} }</b></p><p><b> 復(fù)制文件</b></p><p> if (e.getSource()=
29、=item7)</p><p><b> { try{ </b></p><p> String str=p1.getSelectedText(); </p><p> if(str.length()!=0) </p><p> { strt=str; </p><p> } }catc
30、h(Exception ex) </p><p><b> { } } </b></p><p><b> 粘貼文件</b></p><p> if (e.getSource()==item9)</p><p> { if(strt.length()>0) </p>&l
31、t;p> { p1.insert(strt,p1.getCaretPosition()); </p><p><b> }</b></p><p><b> 退出記事本</b></p><p> if (e.getSource()==item5)</p><p> { if (i==
32、0 &&(ss.length()!=0))</p><p> { bc(); } else { System.exit(0); } }</p><p><b> 異常處理</b></p><p> 在運(yùn)行程序代碼是有可能會(huì)產(chǎn)生異常情況或異常事件,為了避免這種情況,就需要在程序中用到Java異常處理機(jī)制。本程序中選用的異常處
33、理機(jī)制是try,catch。捕獲處理異常的第一步是用try選定要監(jiān)控的異常范圍,try后跟隨catch代碼塊。</p><p><b> try{ </b></p><p> file=new File(fd.getDirectory(),fd.getFile()); </p><p> f.setTitle(fd.getFile()+&
34、quot;文件對(duì)話框"); </p><p> FileReader fr=new FileReader(file);</p><p> BufferedReader br=new BufferedReader(fr); </p><p> String line = null; </p><p> String view
35、= ""; </p><p> while((line=br.readLine())!=null) </p><p><b> { </b></p><p> view += line+"\n"; </p><p><b> } </b></p&
36、gt;<p> p1.setText(view); </p><p> br.close(); </p><p> fr.close(); </p><p><b> } </b></p><p> catch(IOException expIn) </p><p><
37、;b> {} </b></p><p><b> } </b></p><p> if (e.getSource()==item3)</p><p><b> { </b></p><p> if (i==0) </p><p><b>
38、 { </b></p><p><b> bc(); </b></p><p><b> } </b></p><p><b> else </b></p><p><b> { </b></p><p>&l
39、t;b> try{ </b></p><p> file=new File(fd.getDirectory(),fd.getFile()); </p><p> f.setTitle(fd.getFile()+"--記事本"); </p><p> FileWriter fw=new FileWriter(file);&
40、lt;/p><p> BufferedWriter bw=new BufferedWriter(fw); </p><p> String s =p1.getText(); </p><p> s = s.replaceAll("\n","\r\n"); </p><p> bw.write(s);
41、 </p><p> bw.flush(); </p><p> bw.close();</p><p> fw.close(); </p><p><b> i=1; </b></p><p><b> } </b></p><p> c
42、atch(IOException expOut){i=0;}}}</p><p><b> 4:系統(tǒng)調(diào)試運(yùn)行</b></p><p><b> 1.菜單功能</b></p><p><b> 打開: </b></p><p><b> 幫助: </b&g
43、t;</p><p><b> 2.按鈕功能</b></p><p><b> 點(diǎn)擊關(guān)閉按鈕,顯示</b></p><p><b> 表示關(guān)閉成功.</b></p><p><b> 5.源代碼</b></p><p>
44、import java.awt.event.*; </p><p> import java.awt.*; </p><p> import java.io.*; </p><p> import java.lang.String; </p><p> class jsb implements ActionListener </
45、p><p><b> { </b></p><p> Dialog bb; </p><p> String strt; </p><p><b> int i; </b></p><p> FileDialog fd; </p><p> F
46、ile file; </p><p> public Frame f; </p><p> public TextArea p1; </p><p> public MenuBar menubar; </p><p> public Menu menu1,menu2,menu3; </p><p> publ
47、ic MenuItem item1,item2,item3,item4,item5,item6,item7,item8,item9,item10; </p><p> jsb(String s) </p><p><b> { i=0; </b></p><p> f=new Frame(s); </p><p>
48、 p1=new TextArea(""); </p><p> f.setSize(500,500); </p><p> f.setBackground(Color.white); </p><p> f.setVisible(true); </p><p> menubar=new MenuBar(); &l
49、t;/p><p> menu1=new Menu("文件"); </p><p> menu2=new Menu("編輯"); </p><p> menu3=new Menu("幫助"); </p><p> item1=new MenuItem("新建")
50、; </p><p> item2=new MenuItem("打開"); </p><p> item3=new MenuItem("保存"); </p><p> item4=new MenuItem("另存為"); </p><p> item5=new MenuIte
51、m("退出"); </p><p> item6=new MenuItem("全選"); </p><p> item7=new MenuItem("復(fù)制"); </p><p> item8=new MenuItem("剪切"); </p><p> i
52、tem9=new MenuItem("粘貼"); </p><p> item10=new MenuItem("關(guān)于"); </p><p> f.addWindowListener(new WindowAdapter() </p><p><b> { </b></p><p&
53、gt; public void windowClosing(WindowEvent e) </p><p> {f.setVisible(false);System.exit(0);} </p><p><b> }); </b></p><p> menu1.add(item1); </p><p> men
54、u1.add(item2); </p><p> menu1.add(item3); </p><p> menu1.add(item4); </p><p> menu1.add(item5); </p><p> menu2.add(item6); </p><p> menu2.add(item7);
55、</p><p> menu2.add(item8); </p><p> menu2.add(item9); </p><p> menu3.add(item10); </p><p> menubar.add(menu1); </p><p> menubar.add(menu2); </p>
56、<p> menubar.add(menu3); </p><p> f.setMenuBar(menubar); </p><p> item1.addActionListener(this); </p><p> item2.addActionListener(this); </p><p> item3.addA
57、ctionListener(this); </p><p> item4.addActionListener(this); </p><p> item5.addActionListener(this); </p><p> item6.addActionListener(this); </p><p> item7.addActio
58、nListener(this); </p><p> item8.addActionListener(this); </p><p> item9.addActionListener(this); </p><p> item10.addActionListener(this); </p><p> f.setLayout(new G
59、ridLayout(1,1)); </p><p> f.add(p1);f.pack(); </p><p><b> } </b></p><p> public void actionPerformed(ActionEvent e) </p><p><b> { </b></p
60、><p> String ss; </p><p> ss=p1.getText().trim(); </p><p> if (e.getSource()==item5)</p><p><b> { </b></p><p> if (i==0 &&(ss.length(
61、)!=0))</p><p><b> { </b></p><p><b> bc(); </b></p><p><b> } </b></p><p><b> else </b></p><p><b>
62、 { </b></p><p> System.exit(0); </p><p><b> } </b></p><p><b> } </b></p><p> if (e.getSource()==item1) </p><p><b>
63、 { </b></p><p> if (i==0&&(ss.length()!=0))</p><p><b> { </b></p><p><b> bc(); </b></p><p><b> } </b></p>&
64、lt;p><b> else </b></p><p><b> { </b></p><p> p1.setText("");i=0;f.setTitle("文件對(duì)話框"); </p><p><b> } </b></p><
65、;p><b> } </b></p><p> if (e.getSource()==item2)</p><p><b> { </b></p><p> fd=new FileDialog(f,"打開文件",0);</p><p> fd.setVisible
66、(true); </p><p><b> try{ </b></p><p> file=new File(fd.getDirectory(),fd.getFile()); </p><p> f.setTitle(fd.getFile()+"文件對(duì)話框"); </p><p> FileR
67、eader fr=new FileReader(file);</p><p> BufferedReader br=new BufferedReader(fr); </p><p> String line = null; </p><p> String view = ""; </p><p> while((l
68、ine=br.readLine())!=null) </p><p><b> { </b></p><p> view += line+"\n"; </p><p><b> } </b></p><p> p1.setText(view); </p>&
69、lt;p> br.close(); </p><p> fr.close(); </p><p><b> } </b></p><p> catch(IOException expIn) </p><p><b> {} </b></p><p><b
70、> } </b></p><p> if (e.getSource()==item3)</p><p><b> { </b></p><p> if (i==0) </p><p><b> { </b></p><p><b> b
71、c(); </b></p><p><b> } </b></p><p><b> else </b></p><p><b> { </b></p><p><b> try{ </b></p><p>
72、file=new File(fd.getDirectory(),fd.getFile()); </p><p> f.setTitle(fd.getFile()+"--記事本"); </p><p> FileWriter fw=new FileWriter(file);</p><p> BufferedWriter bw=new Buf
73、feredWriter(fw); </p><p> String s =p1.getText(); </p><p> s = s.replaceAll("\n","\r\n"); </p><p> bw.write(s); </p><p> bw.flush(); </p>
74、<p> bw.close();</p><p> fw.close(); </p><p><b> i=1; </b></p><p><b> } </b></p><p> catch(IOException expOut){i=0;} </p><
75、p><b> } </b></p><p><b> } </b></p><p> if (e.getSource()==item4)</p><p><b> { </b></p><p><b> bc(); </b></p&g
76、t;<p><b> } </b></p><p> if (e.getSource()==item10)</p><p><b> { </b></p><p> bb=new Dialog(f,"關(guān)于"); </p><p> Label l1=new
77、 Label("版本:1.0 作者:魏澤平"); </p><p> bb.add(l1); </p><p> bb.setSize(250,150); </p><p> bb.setBackground(Color.white); </p><p> bb.show(); </p><
78、p> bb.addWindowListener(new WindowAdapter() </p><p><b> { </b></p><p> public void windowClosing(WindowEvent e) </p><p> {bb.setVisible(false);bb.dispose();} <
79、/p><p><b> }); </b></p><p><b> } </b></p><p> if (e.getSource()==item6)</p><p><b> { </b></p><p> p1.setSelectionStar
80、t(0); </p><p> p1.setSelectionEnd(p1.getText().length()); </p><p><b> } </b></p><p> if (e.getSource()==item7)</p><p><b> { </b></p>
81、<p><b> try{ </b></p><p> String str=p1.getSelectedText(); </p><p> if(str.length()!=0) </p><p><b> { </b></p><p> strt=str; </p>
82、;<p><b> } </b></p><p> }catch(Exception ex) </p><p><b> { </b></p><p><b> } </b></p><p><b> } </b></p>
83、;<p> if (e.getSource()==item8)</p><p><b> { </b></p><p><b> try{ </b></p><p> String str=p1.getSelectedText(); </p><p> if(str.leng
84、th()!=0) </p><p><b> { </b></p><p> p1.replaceRange("",p1.getSelectionStart(),p1.getSelectionEnd()); </p><p><b> } </b></p><p><
85、b> } </b></p><p> catch(Exception ex) </p><p><b> { </b></p><p><b> } </b></p><p><b> } </b></p><p> if
86、(e.getSource()==item9)</p><p><b> { </b></p><p> if(strt.length()>0) </p><p><b> { </b></p><p> p1.insert(strt,p1.getCaretPosition()); &l
87、t;/p><p><b> } </b></p><p><b> } </b></p><p><b> } </b></p><p> public void bc()</p><p><b> { </b></p&
88、gt;<p> fd=new FileDialog(f,"保存文件",1);</p><p> fd.setVisible(true); </p><p><b> try{ </b></p><p> file=new File(fd.getDirectory(),fd.getFile()); <
89、;/p><p> f.setTitle(fd.getFile()+"--記事本"); </p><p> FileWriter fw=new FileWriter(file);</p><p> BufferedWriter bw=new BufferedWriter(fw); </p><p> String s =
90、p1.getText(); </p><p> s = s.replaceAll("\n","\r\n"); </p><p> bw.write(s); </p><p> bw.flush(); </p><p> bw.close();</p><p> fw.c
91、lose(); </p><p><b> i=1; </b></p><p><b> } </b></p><p> catch(IOException expOut){}</p><p><b> } </b></p><p> publ
92、ic static void main(String args[]) </p><p> {new jsb("記事本");} }</p><p><b> 6.總結(jié)與思考</b></p><p> 通過此次課程設(shè)計(jì),將我本學(xué)期所學(xué)的JAVA知識(shí)得到鞏固和應(yīng)用,在設(shè)計(jì)的過程中我遇到了很到問題,不過在老師和同學(xué)們的幫助和自
93、己的思考下還是很好的完成了。這此課程設(shè)計(jì)還讓我懂得了寫程序不能閉門造車,要努力拓寬知識(shí)面,開闊視野,拓展思維。它還讓我學(xué)會(huì)了在網(wǎng)上查閱那些無限的資料。通過對(duì)此課題的開發(fā),使我對(duì)jcreator開發(fā)平臺(tái)有了一個(gè)比較清楚的認(rèn)識(shí),體會(huì)到理論和實(shí)踐的重要性。由于自己的分析設(shè)計(jì)和程序經(jīng)驗(yàn)不足,該系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)過程中,還有許多沒有完善的地方,比如用戶界面設(shè)計(jì)不夠美觀,異常出錯(cuò)處理比較差等多方面問題,這些都有待進(jìn)一步完善和提高。對(duì)于文中出現(xiàn)的不足和系
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- java記事本課程設(shè)計(jì)
- java記事本課程設(shè)計(jì)報(bào)告
- java記事本課程設(shè)計(jì)報(bào)告
- 記事本課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)--日歷記事本
- java課程設(shè)計(jì)日歷記事本
- java課程設(shè)計(jì)--日歷記事本
- 日歷記事本-java課程設(shè)計(jì)
- 日歷記事本java課程設(shè)計(jì)
- 日歷記事本java課程設(shè)計(jì)論文
- java記事本程序課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)--- 記事本程序設(shè)計(jì)
- 基于java的記事本程序課程設(shè)計(jì)
- java課程設(shè)計(jì)記事本(含代碼)1
- java課程設(shè)計(jì)報(bào)告--實(shí)現(xiàn)記事本功能
- 基于java的記事本程序課程設(shè)計(jì)
- java課程設(shè)計(jì)---設(shè)計(jì)一個(gè)記事本
- java語言課程設(shè)計(jì)---記事本程序設(shè)計(jì)
- java課程設(shè)計(jì)---基于java的記事本軟件設(shè)計(jì)
- java課程設(shè)計(jì)--簡(jiǎn)單記事本程序的設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論