java課程設計--- 記事本程序設計_第1頁
已閱讀1頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  課程設計</b></p><p>  題 目: 記事本程序設計 </p><p>  院 (系): 數(shù)學與計算機學院 </p><p>  年級專業(yè): </p><p>  姓 名:

2、 000000 </p><p>  學 號: </p><p>  指導教師: </p><p>  二〇一三年十二月三十日</p><p><b>  課程設計任務書</b></p&

3、gt;<p>  注:任務書由指導教師填寫。</p><p>  課程設計(論文)指導教師成績評定表</p><p><b>  摘 要</b></p><p>  目前,很多新的技術領域都涉及到了Java語言,Java語言是面向對象編程,并涉及到網(wǎng)絡、多線程等重要的基礎知識,因此Java語言也是學習面向對象編程和網(wǎng)絡編程的首選

4、語言。按照教學培養(yǎng)計劃要求,學生在學習完課本中指定課時的知識后,應安排一定課時的課程設計。其主要目的是使學生深入理解并實踐在本課程中所學的有關JAVA程序設計方面的語言基礎、異常處理、事件處理、小應用程序以及圖形用戶界面設計等。故此“記事本”應運而生。</p><p>  該報告中的程序是簡易記事本。使用Java程序編寫,能夠進行輸入文字操作,并具有新建文件,打開文件,保存文件,退出,復制,粘貼,剪切等功能,不同

5、之處是本程序能夠對文字的顏色進行設置。該程序主要用到了Java swing和事件監(jiān)聽等。</p><p>  關鍵字: 記事本,Java,Java swing</p><p><b>  目錄</b></p><p><b>  摘 要I</b></p><p><b>  1 前 言

6、2</b></p><p><b>  2 需求分析3</b></p><p><b>  2.1需求分析3</b></p><p><b>  2.2功能設計3</b></p><p><b>  3 概要設計4</b></p

7、><p>  3.1程序設計思路4</p><p>  3.2程序運行界面4</p><p>  3.3模塊說明圖4</p><p>  3.4程序流程圖6</p><p>  3.5程序相關說明6</p><p>  4 程序詳細設計與分析7</p><p> 

8、 4.1初始化組件7</p><p>  4.2.構建菜單欄及其下拉菜單7</p><p>  4.3 “文件”菜單的事件監(jiān)聽7</p><p>  4.4 “編輯”菜單的事件監(jiān)聽8</p><p><b>  5 測試分析10</b></p><p><b>  結 論12

9、</b></p><p><b>  參考文獻13</b></p><p><b>  附錄14</b></p><p><b>  1 前 言</b></p><p>  Java的前身是Oak,它一開始只是被應用于消費性電子產(chǎn)品中。后來它的開發(fā)者們發(fā)現(xiàn)它還可

10、以被用于更大范圍的Internet上。1995年,Java語言的名字從Oak編程了Java。1997年J2SE1.1發(fā)布。1998年J2SE1.2發(fā)布,標志Java2的誕生。十多年來,Java編程語言及平臺成功地運用在網(wǎng)絡計算及移動等各個領域。Java的體系結構由Java語言、Java class、Java API、Java虛擬機組成。它具有簡單、面向對象、健壯、安全、結構中立、可移植和高效能等眾多優(yōu)點。Java支持多線程編程,Java

11、運行時系統(tǒng)在多線程同步方面具有成熟的解決方案。Java的平臺標準有Java ME,Java SE和Java EE。Java發(fā)展到今天,它的卓越成就及在業(yè)界的地位毋庸置疑。目前在眾多的支持Java的開發(fā)工具中主要的7有Java Development Kit,NetBeans,Jcreator,JBuilder,JDeveloper和Eclipse等。其中Java Development Kit 簡稱JDK是大多開發(fā)工具的基礎。以上的每種

12、開發(fā)工具都有優(yōu)缺點,對于開發(fā)者來</p><p>  在本程序設計中,因為需要開發(fā)的是記事本程序,規(guī)模較小,內(nèi)容較少,所以選擇了適合初學者使用的JCreator開發(fā)工具。</p><p><b>  2 需求分析</b></p><p><b>  2.1需求分析</b></p><p>  現(xiàn)在網(wǎng)

13、絡上各種文檔編輯器數(shù)不勝數(shù),有EmEditor ,UEStudio ,GridinSoft Notepad ,Notepad++,win32pad ,SkimEdit,UniRed, xint 。功能也是應有盡有,有能改變字體的,有能改變文字顏色的。但是,這些軟件又存在各種各樣的瑕疵或問題:有的文件體積相對于一般文字編輯來說太大;有的功能太繁雜,使初級使用者一時難以掌握。僅從日常應用方面來說,一個文本編輯器只需一些簡單實用的功能就夠了。

14、本程序設計就是依照這樣一種使用需要設計了一個簡單的記事本程序。</p><p><b>  2.2功能設計</b></p><p>  本程序要構建的記事本程序參照了Windows操作系統(tǒng)的記事本工具,其功能有以下幾個方面:</p><p> ?。?)菜單中有“文件”,“編輯”,“關于”三個主菜單。</p><p>  

15、(2)“文件”有“新建”“打開”“保存”“退出”四個子菜單:分別用于新</p><p>  建文件,打開文件,保存文件,退出記事本。</p><p> ?。?)“編輯”中有“剪切”“復制”“粘貼”“顏色”三個字菜單:用于剪切文字,復制文字,粘貼文字。增加了“顏色”子菜單來對文字的顏色進行設置。</p><p> ?。?)“關于”菜單中有關于記事本程序的制作日期,作者

16、等信息。</p><p><b>  3 概要設計</b></p><p><b>  3.1程序設計思路</b></p><p>  在本程序中,設計了一個菜單欄和文本內(nèi)容區(qū)。設計過程中用到JScrollPaneJMenu,JTextPane,JFileChooser等。JMenu用來制作菜單,菜單包括“文件”“編輯”“

17、關于”。JTextPane主要用來輸入文本。為了加入顏色的設置,所以加了一個JColorChooser組件。</p><p><b>  3.2程序運行界面</b></p><p>  圖3.1程序運行界面</p><p><b>  3.3模塊說明圖</b></p><p><b>  

18、圖3.2模塊說明圖</b></p><p>  在圖3.2中,首先創(chuàng)建一個名為mynotepad的類并繼承JFrame類作為最底層的容器。</p><p><b>  圖3.3模塊說明圖</b></p><p>  在圖3.3中,構造一個mynotepad類時要做三件事情,分別是初始化容器(initTextContent)、初始化組

19、件(initMenu、initAboutDialog)、設置事件監(jiān)聽器。</p><p><b>  3.4程序流程圖</b></p><p>  False False </p><p>  true true true true true true true

20、 true</p><p><b>  圖3.4程序流程圖</b></p><p><b>  3.5程序相關說明</b></p><p>  整個記事本分為2塊:菜單欄和內(nèi)容輸入?yún)^(qū)。本程序中首先定義一個mynotepad類繼承JFrame作為最底層容器。</p><p>  (1).Textcon

21、tent為程序文本輸入?yún)^(qū)。</p><p> ?。?).Menu為菜單欄。</p><p> ?。?).AboutDialog為關于對話框。</p><p>  (4).要想記事本完成需求分析中相應的功能,還必須添加事件監(jiān)聽器。事件監(jiān)聽器不僅要添加在菜單欄和內(nèi)容輸入?yún)^(qū),還需加在容器中。本程序中ActListener實現(xiàn)了ActionListener接口,用來監(jiān)聽并處

22、理所有菜單項和內(nèi)容輸入?yún)^(qū)為事件源的事件。</p><p>  4 程序詳細設計與分析</p><p><b>  4.1初始化組件</b></p><p>  initTextContent();</p><p>  initMenu();</p><p>  initAboutDialog();

23、</p><p>  4.2.構建菜單欄及其下拉菜單</p><p>  JMenu[] menus=new JMenu[]{</p><p>  new JMenu("文件"),</p><p>  new JMenu("編輯"),</p><p>  new JMenu(&q

24、uot;關于")</p><p><b>  };</b></p><p>  JMenuItem optionofmenu[][]=new JMenuItem[][]{{</p><p>  new JMenuItem("新建"),</p><p>  new JMenuItem(&quo

25、t;打開"),</p><p>  new JMenuItem("保存"),</p><p>  new JMenuItem("退出")</p><p><b>  },</b></p><p><b>  {</b></p><

26、p>  new JMenuItem("復制"), </p><p>  new JMenuItem("剪切"),</p><p>  new JMenuItem("粘貼"),</p><p>  new JMenuItem("顏色")</p><

27、p><b>  },</b></p><p><b>  {</b></p><p>  new JMenuItem("關于")</p><p><b>  }</b></p><p><b>  };</b></p>

28、<p>  4.3 “文件”菜單的事件監(jiān)聽</p><p>  ActionListener action=new ActionListener(){ </p><p>  public void actionPerformed(ActionEvent e){</p><p>  String name = e.ge

29、tActionCommand();</p><p>  JMenuItem MI=(JMenuItem)e.getSource();</p><p>  if("新建".equals(name)){</p><p>  content.setText("");</p><p>  file=null;&

30、lt;/p><p>  }else if("打開".equals(name)){</p><p>  if(file !=null)openfile.setSelectedFile(file);</p><p>  int returnVal=openfile.showOpenDialog(mynotepad.this);</p>&l

31、t;p>  if(returnVal==JFileChooser.APPROVE_OPTION){</p><p>  file=openfile.getSelectedFile();</p><p><b>  unfold();</b></p><p><b>  }</b></p><p&g

32、t;  }else if("保存".equals(name)){</p><p>  if(file!=null) openfile.setSelectedFile(file);</p><p>  int returnVal=openfile.showSaveDialog(mynotepad.this);</p><p>  if(return

33、Val==JFileChooser.APPROVE_OPTION){</p><p>  file=openfile.getSelectedFile();</p><p><b>  saving();</b></p><p><b>  }</b></p><p>  }else if("

34、;退出".equals(name)){</p><p>  mynotepad f=new mynotepad();</p><p>  int s=JOptionPane.showConfirmDialog(f,"退出?","退出",JOptionPane.YES_NO_OPTION);</p><p>  4.4

35、 “編輯”菜單的事件監(jiān)聽</p><p>  else if("剪切".equals(name)){</p><p>  content.cut();</p><p>  }else if("復制".equals(name)){</p><p>  content.copy();</p>

36、<p>  }else if("粘貼".equals(name)){</p><p>  content.paste();</p><p>  }else if("顏色".equals(name)){</p><p>  color=JColorChooser.showDialog(mynotepad.this,&q

37、uot;",color);</p><p>  content.setForeground(color); </p><p><b>  5 測試分析</b></p><p>  圖5.1:點擊“文件”運行情況</p><p>  圖5.2:“文件”菜單中的“打開”對話框</p><p>

38、;  圖5.3:“編輯”中的“顏色”設置功能</p><p>  圖5.4:“關于”對話框</p><p>  調試結果完全符合課程設計要求!</p><p><b>  結 論</b></p><p>  經(jīng)過一個星期的我的記事本的課程設計,我在老師的指導下,基本上完成我的Java課程設計—簡單的記事本程序,也基本上實

39、現(xiàn)了我在需求分析時所預期的功能。通過該課程設計,收獲頗多。</p><p>  首先,讓我加深了對Java語言的理論知識的理解;進一步鞏固和豐富了我所學過的知識,讓我更深層次地認識到Java及其強大的功能。同時,做這門課程設計也進一步加強了我的動手能力</p><p>  其次,讓我更加熟練的掌握了Java語言的設計能力并且有了實踐經(jīng)驗,在設計過程中,學到了老師沒有在課堂上沒有教授的知識,

40、加強了我對Java語言的學習興趣和好感。</p><p><b>  參考文獻</b></p><p>  [1]朱福喜.《Java語言程序設計》(第二版).科學出版社</p><p>  [2]陳國君等.《Java程序設計基礎》(第二版).清華大學出版社</p><p>  [3] Deitel.《Java大學基礎教程

41、》(第六版).電子工業(yè)出版社 </p><p>  [4] MaryCampione.《Java語言導學》(第四版).機械工業(yè)出版社</p><p>  [5] Y.Daniel Liang.《Java語言程序設計基礎篇》(第六版). 機械工業(yè)出版社</p><p>  [6] Kathy Sierra.《Head First Java》(第二版).東南大學出版社

42、</p><p><b>  附錄</b></p><p><b>  源代碼:</b></p><p>  package com.wxp.Notepad;</p><p>  import java.awt.*;</p><p>  @SuppressWarnings(&

43、quot;serial")</p><p>  class mynotepad extends JFrame{</p><p>  File file=null;</p><p>  Color color=Color.red;</p><p>  mynotepad(){</p><p>  initTex

44、tContent(); //初始化組件</p><p>  initMenu();</p><p>  initAboutDialog();</p><p><b>  }</b></p><p>  void initTextContent(){</p><p>  ge

45、tContentPane().add(new JScrollPane(content)); //滾動面板對象</p><p><b>  }</b></p><p>  JTextPane content=new JTextPane(); //創(chuàng)建/內(nèi)容輸入?yún)^(qū)</p><p>  JFileChooser openfile=new JFil

46、eChooser(); //創(chuàng)建打開文件對話框</p><p>  JColorChooser opencolor=new JColorChooser(); //顏色選擇</p><p>  JDialog about=new JDialog(this); //關于對話框</p><p>  JMenuBar menu=new JMenuBar();

47、 //創(chuàng)建菜單欄</p><p>  //菜單欄的各個菜單項</p><p>  JMenu[] menus=new JMenu[]{</p><p>  new JMenu("文件"),</p><p>  new JMenu("編輯"),</p><p>  n

48、ew JMenu("關于")</p><p><b>  };</b></p><p>  //“文件”菜單項的四個下拉菜單</p><p>  JMenuItem optionofmenu[][]=new JMenuItem[][]{{</p><p>  new JMenuItem("新

49、建"),</p><p>  new JMenuItem("打開"),</p><p>  new JMenuItem("保存"),</p><p>  new JMenuItem("退出")</p><p><b>  },</b></p>

50、;<p>  //編輯菜單的四個下拉菜單 </p><p><b>  { </b></p><p>  new JMenuItem("復制"), </p><p>  new JMenuItem("剪切"),</p><p>  ne

51、w JMenuItem("粘貼"),</p><p>  new JMenuItem("顏色"),</p><p><b>  },</b></p><p><b>  {</b></p><p>  new JMenuItem("關于")

52、</p><p><b>  }</b></p><p><b>  };</b></p><p>  void initMenu(){</p><p>  for(int i=0;i<menus.length;i++){</p><p>  menu.add(menu

53、s[i]);</p><p>  for(int j=0;j<optionofmenu[i].length;j++){</p><p>  menus[i].add(optionofmenu[i][j]);</p><p>  optionofmenu[i][j].addActionListener( action );</p><p>

54、;<b>  }</b></p><p><b>  }</b></p><p>  this.setJMenuBar(menu);</p><p><b>  } </b></p><p>  ActionListener action=new ActionListener(

55、){ //添加事件監(jiān)聽</p><p>  @SuppressWarnings({ "unused", "deprecation" })</p><p>  public void actionPerformed(ActionEvent e){</p><p>  String name = e.ge

56、tActionCommand();</p><p>  JMenuItem MI=(JMenuItem)e.getSource();</p><p>  if("新建".equals(name)){ //監(jiān)聽“新建”事件</p><p>  content.setText("");</p>

57、<p>  file=null;</p><p>  }else if("打開".equals(name)){ //監(jiān)聽“打開”事件</p><p>  if(file !=null)openfile.setSelectedFile(file);</p><p>  int returnVal=openfile.show

58、OpenDialog(mynotepad.this);</p><p>  if(returnVal==JFileChooser.APPROVE_OPTION){</p><p>  file=openfile.getSelectedFile(); //打開選擇文件</p><p><b>  unfold();</b></p>

59、<p><b>  }</b></p><p>  }else if("保存".equals(name)){ //監(jiān)聽“保存”事件</p><p>  if(file!=null) openfile.setSelectedFile(file);</p><p>  int returnVal

60、=openfile.showSaveDialog(mynotepad.this);</p><p>  if(returnVal==JFileChooser.APPROVE_OPTION){</p><p>  file=openfile.getSelectedFile();</p><p><b>  saving();</b></p&

61、gt;<p><b>  }</b></p><p>  }else if("退出".equals(name)){</p><p>  mynotepad f=new mynotepad();</p><p>  int s=JOptionPane.showConfirmDialog(f,"退出?&q

62、uot;,"退出",JOptionPane.YES_NO_OPTION); //提示用戶是否退出</p><p>  if(s==JOptionPane.YES_OPTION)</p><p>  System.exit(0);</p><p>  }else if("剪切".equals(name)){ //

63、監(jiān)聽“剪切”事件</p><p>  content.cut();</p><p>  }else if("復制".equals(name)){ //監(jiān)聽“復制”事件</p><p>  content.copy();</p><p>  }else if("粘貼".equals(name)){

64、 //監(jiān)聽“粘貼”事件</p><p>  content.paste();</p><p>  }else if("顏色".equals(name)){ //監(jiān)聽“顏色”事件</p><p>  color=JColorChooser.showDialog(mynotepad.this,"",color);</p

65、><p>  content.setForeground(color); //對顏色進行設置</p><p>  }else if("關于".equals(name)){</p><p>  about.setSize(300,150);//設置“關于”對話框大小為300×150</p><p>  about.s

66、how(); //顯示“關于”對話框</p><p><b>  }</b></p><p><b>  } </b></p><p><b>  }; </b></p><p>  void saving(){</p><p><

67、b>  try{</b></p><p>  FileWriter Writef=new FileWriter(file); //創(chuàng)建文件寫入器</p><p>  Writef.write(content.getText());</p><p>  Writef.close();</p><p><b> 

68、 }</b></p><p>  catch(Exception e){e.printStackTrace();}</p><p>  } </p><p>  void unfold(){</p><p><b>  try{</b></p><p> 

69、 FileReader Readf=new FileReader(file); //文件讀入</p><p>  int len=(int)file.length();</p><p>  char []buffer=new char[len];</p><p>  Readf.read(buffer,0,len);</p><p>  Re

70、adf.close();</p><p>  content.setText(new String(buffer));</p><p>  }catch(Exception e){e.printStackTrace();}</p><p><b>  }</b></p><p>  void initAboutDialo

71、g(){</p><p>  about.setLayout(new GridLayout(3,1)); //將“關于”對話框設置為3行1列</p><p>  about.getContentPane().setBackground(Color.white);//設置對話框背景色</p><p>  about.getContentPane().add(new J

72、Label("記事本"));//對話框內(nèi)容</p><p>  about.getContentPane().add(new JLabel("制作者:陳 程"));</p><p>  about.getContentPane().add(new JLabel("2013年12月"));</p><p> 

73、 about.setModal(true); //設置對話框前端顯示</p><p>  about.setSize(100,100); </p><p>  about.setLocation(250,170); //設置對話框顯示位置</p><p>

74、<b>  }</b></p><p><b>  ;</b></p><p><b>  } </b></p><p>  public class Notepad{</p><p>  @SuppressWarnings("deprecation")

75、</p><p>  public static void main(String args[]){ //入口main函數(shù) </p><p>  mynotepad noted=new mynotepad();</p><p>  noted.getContentPane().setFont(new Font("新宋體"

76、;, Font.BOLD, 22));</p><p>  noted.setForeground(Color.PINK);</p><p>  noted.setFont(UIManager.getFont("TextArea.font"));</p><p>  noted.setIconImage(Toolkit.getDefaultToo

77、lkit().getImage(Notepad.class.getResource("/image/title.jpg")));</p><p>  noted.addWindowListener(new WindowAdapter(){</p><p><b>  });</b></p><p>  noted.setTi

78、tle("記事本"); //記事本標題</p><p>  noted.setSize(640,320); //設置記事本大小</p><p>  noted.show(); </p><p>  noted.setLocation(150,100); //設置記事本顯示位置

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論