2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  Java語言程序設(shè)計報告</p><p><b>  實現(xiàn)記事本功能</b></p><p>  系 別: ×××××× </p><p>  姓 名: ××× </p>&

2、lt;p>  班 級: ××××××××× </p><p>  指導(dǎo)老師: ××× </p><p><b>  2011年6月5日</b></p><p><b>  目 錄

3、</b></p><p><b>  一、摘要3</b></p><p><b>  二、關(guān)鍵字:3</b></p><p><b>  三、前言3</b></p><p><b>  四、目的:3</b></p><

4、;p><b>  五、要求:4</b></p><p><b>  六、設(shè)計分析4</b></p><p><b>  1.概要設(shè)計4</b></p><p>  1.1程序設(shè)計思路4</p><p>  1.2模塊說明圖4</p><p&g

5、t;  1.3程序流程圖5</p><p>  1.4程序相關(guān)說明6</p><p>  2.程序詳細(xì)設(shè)計與分析7</p><p>  2.1.初始化組件7</p><p>  2.2.構(gòu)建菜單欄及其下拉菜單7</p><p>  2.3.“文件”菜單的事件監(jiān)聽8</p><p> 

6、 2.4.“編輯”菜單的事件監(jiān)聽9</p><p>  2.5.異常處理9</p><p><b>  七、測試分析10</b></p><p><b>  八、源程序12</b></p><p>  九、課程設(shè)計體會17</p><p><b>  一、

7、摘要</b></p><p>  本次課程設(shè)計的題目是用JAVA語言編寫記事本程序,要求是:用圖形界面實現(xiàn);含有簡單的文字編輯功能,如:剪切、復(fù)制、粘貼、刪除;還能實現(xiàn)保存、另存為、查找、替換等功能。</p><p>  本程序主要用到了Java swing組件和事件監(jiān)聽器,還用到了文件的輸入輸出流。記事本的界面參考了Windows中的記事本界面,并且根據(jù)課程設(shè)計要求做了適當(dāng)?shù)?/p>

8、調(diào)整。</p><p><b>  二、關(guān)鍵字:</b></p><p>  記事本程序;Java語言;MyEclipse</p><p><b>  三、前言</b></p><p>  Java的前身是Oak,它一開始只是被應(yīng)用于消費性電子產(chǎn)品中。后來它的開發(fā)者們發(fā)現(xiàn)它還可以被用于更大范圍的In

9、ternet上。1995年,Java語言的名字從Oak編程了Java。1997年J2SE1.1發(fā)布。1998年J2SE1.2發(fā)布,標(biāo)志Java2的誕生。十多年來,Java編程語言及平臺成功地運用在網(wǎng)絡(luò)計算及移動等各個領(lǐng)域。Java的體系結(jié)構(gòu)由Java語言、Java class、Java API、Java虛擬機組成。它具有簡單、面向?qū)ο?、健壯、安全、結(jié)構(gòu)中立、可移植和高效能等眾多優(yōu)點。Java支持多線程編程,Java運行時系統(tǒng)在多線程同步

10、方面具有成熟的解決方案。Java的平臺標(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 簡稱JDK是大多開發(fā)工具的基礎(chǔ)。以上的每種開發(fā)工具都有優(yōu)缺點,對

11、于開發(fā)者來</p><p>  在本程序設(shè)計中,因為需要開發(fā)的是記事本程序,規(guī)模較小,內(nèi)容較少,所以選擇了適合初學(xué)者使用的MyEclipse開發(fā)工具。</p><p><b>  四、目的:</b></p><p>  1)復(fù)習(xí)、鞏固Java語言的基礎(chǔ)知識,進(jìn)一步加深對Java語言的理解和掌握;</p><p>  2)

12、課程設(shè)計為學(xué)生提供了一個既動手又動腦,獨立實踐的機會,將課本上的理論 知識和實際有機的結(jié)合起來,鍛煉學(xué)生的分析解決實際問題的能力。提高學(xué)生適 應(yīng)實際,實踐編程的能力;</p><p>  3)培養(yǎng)學(xué)生在項目開發(fā)中團(tuán)隊合作精神、創(chuàng)新意識及能力。</p><p><b>  五、要求:</b></p><

13、;p>  1、對系統(tǒng)進(jìn)行功能模塊分析、控制模塊分析正確,符合課題要求,實現(xiàn)相應(yīng)功能;可以加以其他功能或修飾,使程序更加完善、合理;</p><p>  2、系統(tǒng)設(shè)計要實用,編程簡練,可用,功能全面</p><p>  3、記錄設(shè)計情況(備查,也為編寫設(shè)計說明書作好準(zhǔn)備);</p><p>  4、要求上機調(diào)試通過和按設(shè)計報告格式。</p><

14、;p>  5、功能要求:用圖形用戶界面實現(xiàn)。</p><p>  6、能實現(xiàn)編輯、保存、另存為、查找替換等功能。</p><p><b>  六、設(shè)計分析</b></p><p><b>  1.概要設(shè)計</b></p><p><b>  1.1程序設(shè)計思路</b>&l

15、t;/p><p>  在本程序中,設(shè)計了一個菜單欄和文本內(nèi)容區(qū)。設(shè)計過程中用到了JScrollPane,JMenu,MyListener,JFrame等。JMenu用來制作菜單,菜單包括“文件”“編輯”“關(guān)于”。 JTextArea主要用來輸入文本。</p><p><b>  1.2模塊說明圖</b></p><p><b>  圖1&

16、lt;/b></p><p>  在圖1中,首先創(chuàng)建一個名為Notebook的類并繼承JFrame類作為最底層的容器。</p><p>  圖2 </p><p><b>  1.3程序流程圖</b></p><p>  False

17、 False </p><p>  true true true true true true true true</p><p><b>  1.4程序相關(guān)說明</b></p><p>  整個記事本分為2快:菜單欄和內(nèi)容輸入?yún)^(qū)。本程序中首先定義一個Notebook類繼

18、承JFrame作為最底層容器。</p><p> ?。?).JScrollPane為程序文本輸入?yún)^(qū)。</p><p> ?。?).Menu為菜單欄。</p><p>  (3).要想記事本完成需求分析中相應(yīng)的功能,還必須添加事件監(jiān)聽器。事件監(jiān)聽器不僅要添加在菜單欄和內(nèi)容輸入?yún)^(qū),還需加在容器中。本程序中ActListener實現(xiàn)了ActionListener接口,用來

19、監(jiān)聽并處理所有菜單項和內(nèi)容輸入?yún)^(qū)為事件源的事件。</p><p>  另外,還用來WindowListener來監(jiān)聽處理容器關(guān)閉觸發(fā)的事件,WindowListener繼承了WindowsAdapter類并覆蓋了WindowsClosing方法。</p><p>  2.程序詳細(xì)設(shè)計與分析</p><p>  2.1.構(gòu)建菜單欄及其下拉菜單</p>&

20、lt;p><b>  // 設(shè)置菜單分類</b></p><p>  JMenu menuFile, menuEdit, menuView, menuHelp;</p><p>  private void setMenu() {</p><p>  menuFile = new JMenu("文件(F)", true

21、);</p><p>  menuEdit = new JMenu("編輯(E)", true);</p><p>  menuView = new JMenu("察看(V)", true);</p><p>  menuHelp = new JMenu("幫助(H)", true);</p>

22、<p><b>  }</b></p><p>  JMenuItem optionofmenu[][]=new JMenuItem[][]{{</p><p>  new JMenuItem("新建"),</p><p>  new JMenuItem("打開"),</p>&

23、lt;p>  new JMenuItem("保存"),</p><p>  new JMenuItem("退出")</p><p><b>  },</b></p><p><b>  {</b></p><p>  new JMenuItem(&quo

24、t;復(fù)制"), </p><p>  new JMenuItem("剪切"),</p><p>  new JMenuItem("粘貼"),</p><p>  new JMenuItem("顏色")</p><p><b>  },</b&

25、gt;</p><p><b>  {</b></p><p>  new JMenuItem("關(guān)于")</p><p><b>  }</b></p><p><b>  };</b></p><p>  2.3.“文件”菜單的事

26、件監(jiān)聽</p><p>  ActionListener action=new ActionListener(){ </p><p>  public void actionPerformed(ActionEvent e){</p><p>  String name = e.getActionCommand();</p&g

27、t;<p>  JMenuItem MI=(JMenuItem)e.getSource();</p><p>  if("新建".equals(name)){</p><p>  content.setText("");</p><p>  file=null;</p><p>  }el

28、se if("打開".equals(name)){</p><p>  if(file !=null)openfile.setSelectedFile(file);</p><p>  int returnVal=openfile.showOpenDialog(mynotepad.this);</p><p>  if(returnVal==JF

29、ileChooser.APPROVE_OPTION){</p><p>  file=openfile.getSelectedFile();</p><p><b>  unfold();</b></p><p><b>  }</b></p><p>  }else if("保存&quo

30、t;.equals(name)){</p><p>  if(file!=null) openfile.setSelectedFile(file);</p><p>  int returnVal=openfile.showSaveDialog(mynotepad.this);</p><p>  if(returnVal==JFileChooser.APPROVE

31、_OPTION){</p><p>  file=openfile.getSelectedFile();</p><p><b>  saving();</b></p><p><b>  }</b></p><p>  }else if("退出".equals(name)){&

32、lt;/p><p>  mynotepad f=new mynotepad();</p><p>  int s=JOptionPane.showConfirmDialog(f,"退出?","退出",JOptionPane.YES_NO_OPTION);</p><p>  2.4.“編輯”菜單的事件監(jiān)聽</p>&

33、lt;p>  else if("剪切".equals(name)){</p><p>  content.cut();</p><p>  }else if("復(fù)制".equals(name)){</p><p>  content.copy();</p><p>  }else if("

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

35、gt;<p>  content.setForeground(color); </p><p><b>  2.5.異常處理</b></p><p>  在運行程序代碼是有可能會產(chǎn)生異常情況或異常事件,為了避免這種情況,就需要在程序中用到Java異常處理機制。本程序中選用的異常處理機制是try,catch。捕獲處理異常的第一步是用try選定要監(jiān)控的異常范

36、圍,try后跟隨catch代碼塊。</p><p><b>  saving(){</b></p><p><b>  try{</b></p><p>  FileWriter Writef=new FileWriter(file);</p><p>  Writef.write(content.

37、getText());</p><p>  Writef.close();</p><p><b>  }</b></p><p>  catch(Exception e){e.printStackTrace();}</p><p>  } </p><p>  vo

38、id unfold(){</p><p><b>  try{</b></p><p>  FileReader Readf=new FileReader(file);</p><p>  int len=(int)file.length();</p><p>  char []buffer=new char[len];

39、</p><p>  Readf.read(buffer,0,len);</p><p>  Readf.close();</p><p>  content.setText(new String(buffer));</p><p>  }catch(Exception e){e.printStackTrace();}</p>

40、<p><b>  }</b></p><p><b>  七、測試分析</b></p><p>  圖4:點擊“文件”運行情況</p><p>  圖5:“文件”菜單中的“打開”對話框</p><p><b>  圖6:打開文件后</b></p>&l

41、t;p>  圖8:“關(guān)于”對話框</p><p><b>  八、源程序</b></p><p>  import java.awt.*;</p><p>  import java.awt.event.*;</p><p>  import javax.swing.*;</p><p> 

42、 import java.io.*;</p><p>  class mynotepad extends JFrame{</p><p>  File file=null;</p><p>  Color color=Color.red;</p><p>  mynotepad(){</p><p>  initTex

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

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

45、ile=new JFileChooser();………………//創(chuàng)建打開文件對話框</p><p>  JColorChooser opencolor=new JColorChooser();…………//顏色選擇</p><p>  JDialog about=new JDialog(this);…………………………//關(guān)于對話框</p><p>  JMenuBar

46、 menu=new JMenuBar();………………………//創(chuàng)建菜單欄</p><p>  //菜單欄的各個菜單項</p><p>  JMenu[] menus=new JMenu[]{</p><p>  new JMenu("文件"),</p><p>  new JMenu("編輯"),&l

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

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

49、 },</b></p><p>  //編輯菜單的四個下拉菜單 </p><p><b>  {</b></p><p>  new JMenuItem("復(fù)制"), </p><p>  new JMenuItem("剪切"),<

50、/p><p>  new JMenuItem("粘貼"),</p><p>  new JMenuItem("顏色")</p><p><b>  },</b></p><p><b>  {</b></p><p>  new JMenu

51、Item("關(guān)于")</p><p><b>  }</b></p><p><b>  };</b></p><p>  void initMenu(){</p><p>  for(int i=0;i<menus.length;i++){</p><

52、p>  menu.add(menus[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 );

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

54、=new ActionListener(){ //添加事件監(jiān)聽</p><p>  public void actionPerformed(ActionEvent e){</p><p>  String name = e.getActionCommand();</p><p>  JMenuItem MI=(JMenuItem)

55、e.getSource();</p><p>  if("新建".equals(name)){……………………………………//監(jiān)聽“新建”事件</p><p>  content.setText("");</p><p>  file=null;</p><p>  }else if("打開&

56、quot;.equals(name)){………………………………//監(jiān)聽“打開”事件</p><p>  if(file !=null)openfile.setSelectedFile(file);</p><p>  int returnVal=openfile.showOpenDialog(mynotepad.this);</p><p>  if(return

57、Val==JFileChooser.APPROVE_OPTION){</p><p>  file=openfile.getSelectedFile();………………//打開選擇文件</p><p><b>  unfold();</b></p><p><b>  }</b></p><p>  

58、}else if("保存".equals(name)){………………………………//監(jiān)聽“保存”事件</p><p>  if(file!=null) openfile.setSelectedFile(file);</p><p>  int returnVal=openfile.showSaveDialog(mynotepad.this);</p>&l

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

60、t;  }else if("退出".equals(name)){</p><p>  mynotepad f=new mynotepad();</p><p>  int s=JOptionPane.showConfirmDialog(f,"退出?","退出",JOptionPane.YES_NO_OPTION);……………………

61、……//提示用戶是否退出</p><p>  if(s==JOptionPane.YES_OPTION)</p><p>  System.exit(0);</p><p>  }else if("剪切".equals(name)){………………………………//監(jiān)聽“剪切”事件</p><p>  content.cut(

62、);</p><p>  }else if("復(fù)制".equals(name)){ ………………………………//監(jiān)聽“復(fù)制”事件</p><p>  content.copy();</p><p>  }else if("粘貼".equals(name)){ ………………………………//監(jiān)聽“粘貼”事件</p>

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

64、;  content.setForeground(color); ……………………………//對顏色進(jìn)行設(shè)置</p><p>  }else if("關(guān)于".equals(name)){</p><p>  about.setSize(300,150);…………………//設(shè)置“關(guān)于”對話框大小為300×150</p><p>  abou

65、t.show();…………………………//顯示“關(guān)于”對話框</p><p><b>  }</b></p><p><b>  } </b></p><p><b>  }; </b></p><p>  void saving(){</p><p>

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

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

68、p>  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><

69、p>  Readf.close();</p><p>  content.setText(new String(buffer));</p><p>  }catch(Exception e){e.printStackTrace();}</p><p><b>  }</b></p><p>  void initA

70、boutDialog(){</p><p>  about.setLayout(new GridLayout(3,1));……………//將“關(guān)于”對話框設(shè)置為3行1列</p><p>  about.getContentPane().setBackground(Color.white);//設(shè)置對話框背景色</p><p>  about.getContentPan

71、e().add(new JLabel("我的記事本程序"));//對話框內(nèi)容</p><p>  about.getContentPane().add(new JLabel("制作者:LYF"));</p><p>  about.getContentPane().add(new JLabel("2010年1月"));</p

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

73、位置</p><p><b>  }</b></p><p><b>  ;</b></p><p><b>  } </b></p><p>  public class Notepad{</p><p>  public static void

74、main(String args[]){ //入口main函數(shù)</p><p>  mynotepad noted=new mynotepad();</p><p>  noted.addWindowListener(new WindowAdapter(){</p><p><b>  });</b&

75、gt;</p><p>  noted.setTitle("我的記事本程序"); //記事本標(biāo)題</p><p>  noted.setSize(640,320); //設(shè)置記事本大小</p><p>  noted.show(); </p

76、><p>  noted.setLocation(150,100); //設(shè)置記事本顯示位置</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  九、課程設(shè)計體會</b></p><

77、;p>  經(jīng)過努力,基本上完成我的Java課程設(shè)計—簡單的記事本程序,也基本上實現(xiàn)了老師需求分析時所預(yù)期的功能。通過這次的課程設(shè)計,使將我從書本上學(xué)習(xí)到的理論知識用到了實踐上,從而進(jìn)一步鞏固和豐富了我所學(xué)過的知識,讓我更深層次地認(rèn)識到Java及其強大的功能。同時,做這門課程設(shè)計也進(jìn)一步加強了我的動手能力。為了完成好這次課程設(shè)計,我一邊上網(wǎng)查找相關(guān)資料,另一方面查閱相關(guān)書籍。在這過程中也無形中鍛煉了我的思維分析、遇到問題及想方設(shè)法通

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論