java記事本課程設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩16頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論