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

下載本文檔

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

文檔簡介

1、<p>  java課程設(shè)計說明書</p><p><b>  課程設(shè)計任務(wù)書 </b></p><p>  1、設(shè)計的目的與要求;</p><p>  1、)為用戶提供一個帶有日程提醒功能的日歷記事本并具備以下功能:</p><p> ?。?)、顯示信息:用戶可以向前翻頁查詢前一個月的日期,也可以向后翻頁查詢

2、下一個月的日期。</p><p> ?。?)、定時提醒:用戶可以針對某一天來添加,刪除和編輯這一天的日程提醒信息,當(dāng)系統(tǒng)時間和提醒時間相吻合時,給出具有提示信息的對話框。</p><p> ?。?)、查詢信息:用戶可以查詢到某個月的所有的提示信息。</p><p>  2、)對java技術(shù)的進(jìn)一步了解和簡單的運(yùn)用;</p><p>  3、)

3、初步的接觸軟件工程;</p><p><b>  設(shè)計進(jìn)度及完成情況</b></p><p><b>  目 錄</b></p><p>  摘 要- 4 -</p><p>  1. 引言- 5 -</p><p>  2.設(shè)計目的與任務(wù)- 5 -</

4、p><p>  3.設(shè)計方案- 6 -</p><p>  3.1 總體設(shè)計- 6 -</p><p>  3.2設(shè)計要求- 6 -</p><p>  3.3系統(tǒng)的主要功能- 6 -</p><p>  3.4系統(tǒng)功能結(jié)構(gòu)圖- 6 -</p><p>  3.5運(yùn)行功能(截圖)- 7

5、-</p><p>  4.結(jié)束語- 9 -</p><p>  5.致 謝- 9 -</p><p>  6.參考文獻(xiàn)- 10 -</p><p>  7.附錄A:源程序- 11 -</p><p>  8附錄B:實(shí)驗(yàn)體會- 24 -</p><p><b>  摘

6、 要</b></p><p>  本課程設(shè)計通過代碼實(shí)現(xiàn)將理論知識和具體實(shí)踐相結(jié)合,鞏固提高了對JAVA的相關(guān)方法與概念的理解,使學(xué)生的發(fā)散思維及動手能力進(jìn)一步加強(qiáng),加強(qiáng)對計算機(jī)及軟件工程的進(jìn)一步了解。</p><p>  在本案例中,我們開發(fā)了一個實(shí)現(xiàn)有日歷標(biāo)記的記事本軟件,日歷記事本面板由日歷和和記事本兩部分組成。 日歷部分可以調(diào)節(jié)年份,月份,日期,星期。記事本可以實(shí)行查看

7、,保存,刪除等操作,并且每一步操作都有相應(yīng)提示。本軟件是一個實(shí)用性很強(qiáng),簡潔,方便的功能軟件。</p><p>  關(guān)鍵詞: java;日歷記事本 </p><p>  《Java程序設(shè)計》課程設(shè)計</p><p><b>  ——日歷記事本 </b></p><p><b>  1. 引言</b&g

8、t;</p><p>  Java是一種純面向?qū)ο蟮?、網(wǎng)絡(luò)編程首選的語言。Java技術(shù)作為軟件開 的一種革命性技術(shù),已被列為當(dāng)今世界信息技術(shù)的主流之一。為了適應(yīng)時代潮流,我們應(yīng)該加強(qiáng)對Java的學(xué)習(xí),更好的掌握這門課程。為此,我們成了一個課程小組,經(jīng)過小組成的商討之后,我們決定以“日歷記事本”為設(shè) 題材,借此鞏固加深我們對Java的了解。</p><p>  本次課程設(shè)計的實(shí)例雖

9、然比較簡單,程序設(shè)計也不是很復(fù)雜,但在此程序的設(shè)計過程也是一個學(xué)習(xí)過程,更是對復(fù)雜程序的一個學(xué)習(xí)過程,還能培養(yǎng)我們的數(shù)抽象能力。因此,我們覺得這次課程設(shè)計是非常有意義的,能為我們今后學(xué)習(xí)面向過程的程序設(shè)計作一些鋪墊。 </p><p><b>  2.設(shè)計目的與任務(wù)</b></p><p>  本課程設(shè)計所要求達(dá)到的目的和任務(wù):通過Java程序設(shè)計的一些重要理論基礎(chǔ)來

10、實(shí)現(xiàn)“日歷記事本”的“日歷”和“記事本”的雙重功能。并通過此次課程設(shè)計的訓(xùn)練,使學(xué)生鞏固和加深對Java這門課程的理解,通過利用所學(xué)到的計算科學(xué)的理論知識,提高解決實(shí)際問題的能力,增強(qiáng)運(yùn)算、編程和使用技術(shù)資料的技能,通過實(shí)際問題的分析設(shè)計、編程和調(diào)試,掌握應(yīng)用軟件的分析方法和工程設(shè)計方法,能正確闡述設(shè)計和實(shí)驗(yàn)結(jié)果。通過這次課程設(shè)計,培養(yǎng)實(shí)事求是、認(rèn)真、嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度和刻苦鉆研不斷創(chuàng)新的精神,逐步建立正確的全局觀念。</p>

11、<p><b>  3.設(shè)計方案</b></p><p><b>  3.1 總體設(shè)計</b></p><p><b>  (1)問題定 </b></p><p>  義:創(chuàng)建日歷記事本,實(shí)現(xiàn)對某日期的事情進(jìn)行記錄等功能。</p><p> ?。?)問題分析:通過對

12、“日歷記事本”這一題材的分析,我需要四個類來實(shí)現(xiàn)其“日歷”和“記事本”這倆大功能。通過主類CalendPad創(chuàng)建主窗口,再用余下Year、Month、NotePad類來控制日期的變化和實(shí)現(xiàn)記事本的功能。</p><p> ?。?)研究意義:通過本次課程設(shè)計,我們掌握了Java語言的基本運(yùn)用,提高了理論結(jié)合實(shí)際的能力。 </p><p><b>  3.2設(shè)計要求 </b&g

13、t;</p><p>  (1)界面的左側(cè)是日歷。該日歷可以按年前后翻動,當(dāng)鼠標(biāo)單擊“上一年”按鈕時,當(dāng)前日歷的年份將減一;當(dāng)鼠標(biāo)左鍵單擊“下年”按鈕,當(dāng)前日歷的年份將加一。 (2)也可以在某年內(nèi)按月前后翻動。當(dāng)鼠標(biāo)左鍵單擊“上月”按鈕時,當(dāng)前日歷的月份將減一;當(dāng)鼠標(biāo)左鍵單擊“下月” 當(dāng)前日歷表的月份將加一。 (3)使用鼠標(biāo)左鍵在要選擇的日期上單擊,如有記事內(nèi)容,程序?qū)棾鰧υ捒蛱崾驹撊沼杏浭聝?nèi)容,提

14、示用戶是否用記事本顯示該內(nèi)容。 (4)選擇具體日期后,可以將記事本的內(nèi)容保存起來,形成一個日志。 </p><p>  3.3系統(tǒng)的主要功能 </p><p> ?。?)可以進(jìn)行日期查詢;</p><p> ?。?)可以方便地在任何日期記載有關(guān)內(nèi)容以及查看某個日期記載的內(nèi)容 。 </p><p>  3.4系統(tǒng)功能結(jié)構(gòu)圖</p&g

15、t;<p> ?。?)CalendarPad類:負(fù)責(zé)創(chuàng)建日歷記事本主窗口。該文件含有main方法,程序從該類開始執(zhí)行,實(shí)現(xiàn)代碼中的方法。</p><p> ?。?)Year類:負(fù)責(zé)創(chuàng)建管理年份的對象</p><p> ?。?)Month類:負(fù)責(zé)創(chuàng)建管理月份的對象。</p><p> ?。?)NotePad類:負(fù)責(zé)創(chuàng)建記事本。 </p>&

16、lt;p>  圖1 系統(tǒng)功能結(jié)構(gòu)圖</p><p>  3.5運(yùn)行功能(截圖) </p><p>  圖2 日歷記事本界面</p><p><b>  圖3 保存記事</b></p><p><b>  圖4 刪除記事</b></p><p><b>  圖5

17、 修改年份</b></p><p><b>  圖6 查看記事</b></p><p><b>  4.結(jié)束語</b></p><p>  從本次課程設(shè)計的完成中,我們了解了課程設(shè)計的要求與方法,學(xué)會了程序設(shè)計基本步驟。進(jìn)一步提高了團(tuán)隊合作的意識。同時,使我們感覺到,一個優(yōu)秀的程序,不僅僅是可以運(yùn)行的,更應(yīng)該

18、具較高的效率,合理的結(jié)構(gòu),良好的可讀性和一定的容錯性。 同時,我們認(rèn)為一個程序的成功完成需要嚴(yán)謹(jǐn)?shù)膭?wù)實(shí)態(tài)度,和團(tuán)隊的團(tuán)結(jié)協(xié)作的精神.團(tuán)結(jié)協(xié)作和認(rèn)真的態(tài)度是我們課程設(shè)計取得成功的一項非常重要的保證。但在完成過程中也發(fā)現(xiàn)了不足,由于知識的限制,沒有設(shè)置日記查看密碼功能.以后的學(xué)習(xí)中我們將虛心向?qū)W. </p><p><b>  5.致 謝</b></p><p>  我

19、們真心的感謝王逢州老師對我們精心的指導(dǎo)和不倦的教育,他在我們的課程設(shè)計過程中提出了指導(dǎo)性的方案和架構(gòu),并指引我們閱讀相關(guān)的資料和書籍,使我們在不熟悉的領(lǐng)域中仍能迅速掌握新的技術(shù). </p><p>  感謝校領(lǐng)導(dǎo)給我們這次難得的鍛煉機(jī)會,讓我們能更好的理解和實(shí)踐java編程,讓我們對java編程有了深刻的認(rèn)知,進(jìn)一步的了解了所學(xué)知識。 </p><p><b>  6.參考文獻(xiàn)&

20、lt;/b></p><p>  [1] 張廣彬,孟紅蕊,張永寶.Java課程設(shè)計案例精編[M].北京:清華大學(xué)出版社,2007,1.</p><p>  [2] 黃曉東.Java課程設(shè)計案例精編[M].北京:中國水利水電出版社,2004,5.</p><p>  [3] Java程序設(shè)計之網(wǎng)絡(luò)編程[M].北京:清華大學(xué)出版社,2006,3.</p>

21、;<p>  [4] Java并發(fā)編程—設(shè)計原則與模式[M].北京:中國電力出版社,2004,2.</p><p>  [5] 印昊.java與面向?qū)ο蟪绦蛟O(shè)計.高等教育出版社.2004.4.</p><p>  [6] 耿祥義,《Java課程設(shè)計》,清華大學(xué)出版社,2004.02 </p><p><b>  附錄A:源程序</b&

22、gt;</p><p>  1、)CalendarPad類</p><p>  import java.util.Calendar;</p><p>  import javax.swing.*;</p><p>  import java.awt.*;</p><p>  import java.awt.event.

23、*;</p><p>  import java.io.*;</p><p>  import java.util.Hashtable;</p><p>  public class CalendarPad extends JFrame implements MouseListener</p><p><b>  {</b&g

24、t;</p><p>  int year,month,day;</p><p>  Hashtable hashtable; </p><p>  File file; </p><p>  JTextField showDay[]; </p&

25、gt;<p>  JLabel title[]; </p><p>  Calendar 日歷;</p><p><b>  int 星期幾; </b></p><p>  NotePad notepad=null; </p><p>  Mont

26、h 負(fù)責(zé)改變月;</p><p>  Year 負(fù)責(zé)改變年;</p><p>  String 星期[]={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};</p><p>  JPane

27、l leftPanel,rightPanel; </p><p>  public CalendarPad(int year,int month,int day)</p><p><b>  { </b></p><p>  leftPanel=new JPanel();</p><p>  JPanel lef

28、tCenter=new JPanel();</p><p>  JPanel leftNorth=new JPanel();</p><p>  leftCenter.setLayout(new GridLayout(7,7)); </p><p>  rightPanel=new JPanel();</p><p>  this.yea

29、r=year;</p><p>  this.month=month;</p><p>  this.day=day;</p><p>  負(fù)責(zé)改變年=new Year(this);</p><p>  負(fù)責(zé)改變年.setYear(year);</p><p>  負(fù)責(zé)改變月=new Month(this);</

30、p><p>  負(fù)責(zé)改變月.setMonth(month);</p><p>  title=new JLabel[7]; </p><p>  showDay=new JTextField[42]; </p><p>  for(int j=0;j<7;j

31、++) </p><p><b>  {</b></p><p>  title[j]=new JLabel();</p><p>  title[j].setText(星期[j]);</p><p>  title[j].setBorder(BorderFactory.c

32、reateRaisedBevelBorder());</p><p>  leftCenter.add(title[j]);</p><p><b>  } </b></p><p>  title[0].setForeground(Color.red);</p><p>  title[6].setForeground

33、(Color.blue);</p><p>  for(int i=0;i<42;i++) </p><p><b>  {</b></p><p>  showDay[i]=new JTextField();</p><p>  showDay[i].addMouse

34、Listener(this);</p><p>  showDay[i].setEditable(false);</p><p>  leftCenter.add(showDay[i]);</p><p><b>  }</b></p><p>  日歷=Calendar.getInstance();</p>

35、<p>  Box box=Box.createHorizontalBox(); </p><p>  box.add(負(fù)責(zé)改變年);</p><p>  box.add(負(fù)責(zé)改變月);</p><p>  leftNorth.add(box);</p><p>  leftPanel.setLayout(ne

36、w BorderLayout());</p><p>  leftPanel.add(leftNorth,BorderLayout.NORTH);</p><p>  leftPanel.add(leftCenter,BorderLayout.CENTER);</p><p>  leftPanel.add(new Label("請在年份輸入框輸入所查年份

37、(負(fù)數(shù)表示公元前),并回車確定"),</p><p>  BorderLayout.SOUTH) ;</p><p>  leftPanel.validate();</p><p>  Container con=getContentPane();</p><p>  JSplitPane split=new JSplitPane(

38、JSplitPane.HORIZONTAL_SPLIT,</p><p>  leftPanel,rightPanel);</p><p>  con.add(split,BorderLayout.CENTER);</p><p>  con.validate();</p><p>  hashtable=new Hashtable();&l

39、t;/p><p>  file=new File("日歷記事本.txt");</p><p>  if(!file.exists())</p><p><b>  {</b></p><p><b>  try{</b></p><p>  FileOutpu

40、tStream out=new FileOutputStream(file);</p><p>  ObjectOutputStream objectOut=new ObjectOutputStream(out);</p><p>  objectOut.writeObject(hashtable);</p><p>  objectOut.close();<

41、/p><p>  out.close();</p><p><b>  }</b></p><p>  catch(IOException e)</p><p><b>  {</b></p><p><b>  }</b></p><p

42、><b>  } </b></p><p>  notepad=new NotePad(this); </p><p>  rightPanel.add(notepad);</p><p>  設(shè)置日歷牌(year,month);</p><p&

43、gt;  addWindowListener(new WindowAdapter()</p><p>  { public void windowClosing(WindowEvent e)</p><p><b>  {</b></p><p>  System.exit(0);</p><p><b>  

44、}</b></p><p><b>  });</b></p><p>  setVisible(true);</p><p>  setBounds(100,50,524,285);</p><p>  validate();</p><p><b>  }</b&g

45、t;</p><p>  public void 設(shè)置日歷牌(int year,int month)</p><p><b>  {</b></p><p>  日歷.set(year,month-1,1); </p><p>  星期幾=日歷.get(Calendar.DAY_OF_WEEK)

46、-1;</p><p>  if(month==1||month==2||month==3||month==5||month==7</p><p>  ||month==8||month==10||month==12)</p><p><b>  {</b></p><p>  排列號碼(星期幾,31);

47、 </p><p><b>  }</b></p><p>  else if(month==4||month==6||month==9||month==11)</p><p><b>  {</b></p><p>  排列號碼(星期幾,30);</p><p><b

48、>  }</b></p><p>  else if(month==2)</p><p><b>  {</b></p><p>  if((year%4==0&&year%100!=0)||(year%400==0)) </p><p><b>  {</b>&

49、lt;/p><p>  排列號碼(星期幾,29);</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  排列號碼(星期幾,28);</p><p

50、><b>  }</b></p><p><b>  }</b></p><p><b>  } </b></p><p>  public void 排列號碼(int 星期幾,int 月天數(shù))</p><p><b>  {</b></p&g

51、t;<p>  for(int i=星期幾,n=1;i<星期幾+月天數(shù);i++)</p><p><b>  {</b></p><p>  showDay[i].setText(""+n);</p><p>  if(n==day)</p><p><b>  {<

52、;/b></p><p>  showDay[i].setForeground(Color.green); </p><p>  showDay[i].setFont(new Font("TimesRoman",Font.BOLD,20));</p><p><b>  }</b></p><p&g

53、t;<b>  else</b></p><p><b>  { </b></p><p>  showDay[i].setFont(new Font("TimesRoman",Font.BOLD,12));</p><p>  showDay[i].setForeground(Color.black)

54、;</p><p><b>  }</b></p><p>  if(i%7==6)</p><p><b>  {</b></p><p>  showDay[i].setForeground(Color.blue); </p><p><b>  }</

55、b></p><p>  if(i%7==0)</p><p><b>  {</b></p><p>  showDay[i].setForeground(Color.red); </p><p><b>  }</b></p><p><b>  n++

56、; </b></p><p><b>  }</b></p><p>  for(int i=0;i<星期幾;i++)</p><p><b>  {</b></p><p>  showDay[i].setText("");</p><p&

57、gt;<b>  }</b></p><p>  for(int i=星期幾+月天數(shù);i<42;i++)</p><p><b>  {</b></p><p>  showDay[i].setText("");</p><p><b>  }</b>

58、</p><p><b>  }</b></p><p>  public int getYear()</p><p><b>  {</b></p><p>  return year;</p><p><b>  } </b></p>

59、<p>  public void setYear(int y)</p><p><b>  {</b></p><p><b>  year=y;</b></p><p>  notepad.setYear(year);</p><p><b>  }</b><

60、;/p><p>  public int getMonth()</p><p><b>  {</b></p><p>  return month;</p><p><b>  }</b></p><p>  public void setMonth(int m)</p&

61、gt;<p><b>  {</b></p><p><b>  month=m;</b></p><p>  notepad.setMonth(month); </p><p><b>  }</b></p><p>  public int getDay()&

62、lt;/p><p><b>  {</b></p><p>  return day;</p><p><b>  }</b></p><p>  public void setDay(int d)</p><p><b>  {</b></p>

63、<p><b>  day=d;</b></p><p>  notepad.setDay(day);</p><p><b>  }</b></p><p>  public Hashtable getHashtable()</p><p><b>  {</b>

64、;</p><p>  return hashtable;</p><p><b>  }</b></p><p>  public File getFile()</p><p><b>  {</b></p><p>  return file;</p>&l

65、t;p><b>  }</b></p><p>  public void mousePressed(MouseEvent e) </p><p><b>  {</b></p><p>  JTextField source=(JTextField)e.getSource();</p&

66、gt;<p><b>  try{</b></p><p>  day=Integer.parseInt(source.getText());</p><p>  notepad.setDay(day);</p><p>  notepad.設(shè)置信息條(year,month,day);</p><p>  

67、notepad.設(shè)置文本區(qū)(null);</p><p>  notepad.獲取日志內(nèi)容(year,month,day);</p><p><b>  } </b></p><p>  catch(Exception ee)</p><p><b>  {</b></p><p

68、><b>  }</b></p><p><b>  }</b></p><p>  public void mouseClicked(MouseEvent e)</p><p><b>  {</b></p><p><b>  }</b><

69、/p><p>  public void mouseReleased(MouseEvent e)</p><p><b>  {</b></p><p><b>  }</b></p><p>  public void mouseEntered(MouseEvent e)</p><

70、;p><b>  {</b></p><p><b>  }</b></p><p>  public void mouseExited(MouseEvent e)</p><p><b>  {</b></p><p><b>  }</b><

71、;/p><p>  public static void main(String args[])</p><p><b>  {</b></p><p>  Calendar calendar=Calendar.getInstance(); </p><p>  int y=calendar.get(Calendar.

72、YEAR); </p><p>  int m=calendar.get(Calendar.MONTH)+1; </p><p>  int d=calendar.get(Calendar.DAY_OF_MONTH);</p><p>  new CalendarPad(y,m,d);</p><p><

73、;b>  }</b></p><p><b>  } </b></p><p>  2、) Month類</p><p>  import javax.swing.*;</p><p>  import java.awt.*;</p><p>  import java.aw

74、t.event.*;</p><p>  public class Month extends Box implements ActionListener</p><p><b>  {</b></p><p>  int month; </p><p>  JText

75、Field showMonth=null; </p><p>  JButton 下月,上月;</p><p>  CalendarPad 日歷;</p><p>  public Month(CalendarPad 日歷)</p><p><b>  { </b></p><p

76、>  super(BoxLayout.X_AXIS); </p><p>  this.日歷=日歷;</p><p>  showMonth=new JTextField(2);</p><p>  month=日歷.getMonth();</p><p>  showMonth.setEditable(false);&l

77、t;/p><p>  showMonth.setForeground(Color.blue);</p><p>  showMonth.setFont(new Font("TimesRomn",Font.BOLD,16)); </p><p>  下月=new JButton("下月");</p><p>

78、  上月=new JButton("上月");</p><p><b>  add(上月);</b></p><p>  add(showMonth);</p><p><b>  add(下月);</b></p><p>  上月.addActionListener(this)

79、;</p><p>  下月.addActionListener(this);</p><p>  showMonth.setText(""+month);</p><p><b>  }</b></p><p>  public void setMonth(int month)</p>

80、<p><b>  {</b></p><p>  if(month<=12&&month>=1)</p><p><b>  {</b></p><p>  this.month=month;</p><p><b>  }</b>&l

81、t;/p><p><b>  else</b></p><p><b>  {</b></p><p>  this.month=1;</p><p><b>  }</b></p><p>  showMonth.setText(""+

82、month);</p><p><b>  }</b></p><p>  public int getMonth()</p><p><b>  {</b></p><p>  return month;</p><p><b>  } </b><

83、;/p><p>  public void actionPerformed(ActionEvent e)</p><p><b>  {</b></p><p>  if(e.getSource()==上月)</p><p><b>  {</b></p><p>  if(mo

84、nth>=2)</p><p><b>  {</b></p><p>  month=month-1;</p><p>  日歷.setMonth(month);</p><p>  日歷.設(shè)置日歷牌(日歷.getYear(),month);</p><p><b>  }<

85、;/b></p><p>  else if(month==1)</p><p><b>  {</b></p><p><b>  month=12;</b></p><p>  日歷.setMonth(month);</p><p>  日歷.設(shè)置日歷牌(日歷.ge

86、tYear(),month);</p><p><b>  }</b></p><p>  showMonth.setText(""+month);</p><p><b>  }</b></p><p>  else if(e.getSource()==下月)</p>

87、;<p><b>  {</b></p><p>  if(month<12)</p><p><b>  {</b></p><p>  month=month+1;</p><p>  日歷.setMonth(month);</p><p>  日歷.

88、設(shè)置日歷牌(日歷.getYear(),month);</p><p><b>  }</b></p><p>  else if(month==12)</p><p><b>  {</b></p><p><b>  month=1;</b></p><p

89、>  日歷.setMonth(month);</p><p>  日歷.設(shè)置日歷牌(日歷.getYear(),month);</p><p><b>  }</b></p><p>  showMonth.setText(""+month);</p><p><b>  }</b

90、></p><p><b>  } </b></p><p><b>  } </b></p><p>  3、)NotePad類</p><p>  import java.awt.*;</p><p>  import java.awt.event.*;<

91、/p><p>  import java.util.*;</p><p>  import javax.swing.*;</p><p>  import javax.swing.event.*;</p><p>  import java.io.*;</p><p>  public class NotePad exte

92、nds JPanel implements ActionListener</p><p><b>  {</b></p><p>  JTextArea text; </p><p>  JButton 保存日志,刪除日志;</p><p>  Hashtable table;

93、 </p><p>  JLabel 信息條; </p><p>  int year,month,day; </p><p>  File file; </p><p>  CalendarPad calendar;</p><p&g

94、t;  public NotePad(CalendarPad calendar)</p><p><b>  {</b></p><p>  this.calendar=calendar;</p><p>  year=calendar.getYear();</p><p>  month=calendar.getMo

95、nth();</p><p>  day=calendar.getDay();;</p><p>  table=calendar.getHashtable();</p><p>  file=calendar.getFile();</p><p>  信息條=new JLabel(""+year+"年"

96、;+month+"月"+day+"日",JLabel.CENTER);</p><p>  信息條.setFont(new Font("TimesRoman",Font.BOLD,16));</p><p>  信息條.setForeground(Color.blue);</p><p>  text=ne

97、w JTextArea(10,10);</p><p>  保存日志=new JButton("保存日志") ;</p><p>  刪除日志=new JButton("刪除日志") ;</p><p>  保存日志.addActionListener(this);</p><p>  刪除日志.add

98、ActionListener(this);</p><p>  setLayout(new BorderLayout());</p><p>  JPanel pSouth=new JPanel(); </p><p>  add(信息條,BorderLayout.NORTH);</p><p>  pSouth.add(保存日志

99、);</p><p>  pSouth.add(刪除日志);</p><p>  add(pSouth,BorderLayout.SOUTH);</p><p>  add(new JScrollPane(text),BorderLayout.CENTER);</p><p><b>  }</b></p>

100、<p>  public void actionPerformed(ActionEvent e)</p><p><b>  {</b></p><p>  if(e.getSource()==保存日志)</p><p><b>  {</b></p><p>  保存日志(year,m

101、onth,day);</p><p><b>  }</b></p><p>  else if(e.getSource()==刪除日志)</p><p><b>  {</b></p><p>  刪除日志(year,month,day);</p><p><b>

102、;  }</b></p><p><b>  }</b></p><p>  public void setYear(int year)</p><p><b>  {</b></p><p>  this.year=year;</p><p><b>

103、  }</b></p><p>  public int getYear()</p><p><b>  {</b></p><p>  return year;</p><p><b>  }</b></p><p>  public void setMonth

104、(int month)</p><p><b>  {</b></p><p>  this.month=month;</p><p><b>  } </b></p><p>  public int getMonth()</p><p><b>  {</

105、b></p><p>  return month;</p><p><b>  } </b></p><p>  public void setDay(int day)</p><p><b>  {</b></p><p>  this.day=day;</p

106、><p><b>  }</b></p><p>  public int getDay()</p><p><b>  {</b></p><p>  return day;</p><p><b>  }</b></p><p>

107、  public void 設(shè)置信息條(int year,int month,int day)</p><p><b>  {</b></p><p>  信息條.setText(""+year+"年"+month+"月"+day+"日");</p><p><

108、;b>  }</b></p><p>  public void 設(shè)置文本區(qū)(String s)</p><p><b>  {</b></p><p>  text.setText(s);</p><p><b>  }</b></p><p>  pub

109、lic void 獲取日志內(nèi)容(int year,int month,int day)</p><p><b>  {</b></p><p>  String key=""+year+""+month+""+day;</p><p><b>  try</b>&

110、lt;/p><p><b>  {</b></p><p>  FileInputStream inOne=new FileInputStream(file);</p><p>  ObjectInputStream inTwo=new ObjectInputStream(inOne);</p><p>  table=

111、(Hashtable)inTwo.readObject(); </p><p>  inOne.close();</p><p>  inTwo.close();</p><p><b>  }</b></p><p>  catch(Exception ee)</p><p>&

112、lt;b>  {</b></p><p><b>  }</b></p><p>  if(table.containsKey(key))</p><p><b>  {</b></p><p>  String m=""+year+"年"+

113、month+"月"+day+"這一天有日志記載,想看嗎?";</p><p>  int ok=JOptionPane.showConfirmDialog(this,m,"詢問",JOptionPane.YES_NO_OPTION,</p><p>  JOptionPane.QUESTION_MESSAGE);</p>

114、;<p>  if(ok==JOptionPane.YES_OPTION)</p><p><b>  {</b></p><p>  text.setText((String)table.get(key));</p><p><b>  }</b></p><p><b>

115、  else</b></p><p><b>  {</b></p><p>  text.setText(""); </p><p><b>  }</b></p><p><b>  } </b></p><p>&l

116、t;b>  else</b></p><p><b>  {</b></p><p>  text.setText("無記錄");</p><p><b>  } </b></p><p><b>  }</b></p>&l

117、t;p>  public void 保存日志(int year,int month,int day)</p><p><b>  {</b></p><p>  String 日志內(nèi)容=text.getText();</p><p>  String key=""+year+""+month+&qu

118、ot;"+day;</p><p>  String m=""+year+"年"+month+"月"+day+"保存日志嗎?";</p><p>  int ok=JOptionPane.showConfirmDialog(this,m,"詢問",JOptionPane.YES_N

119、O_OPTION,</p><p>  JOptionPane.QUESTION_MESSAGE);</p><p>  if(ok==JOptionPane.YES_OPTION)</p><p><b>  {</b></p><p><b>  try</b></p><p

120、><b>  {</b></p><p>  FileInputStream inOne=new FileInputStream(file);</p><p>  ObjectInputStream inTwo=new ObjectInputStream(inOne);</p><p>  table=(Hashtable)inTwo

121、.readObject();</p><p>  inOne.close();</p><p>  inTwo.close();</p><p>  table.put(key,日志內(nèi)容); </p><p>  FileOutputStream out=new FileOut

122、putStream(file);</p><p>  ObjectOutputStream objectOut=new ObjectOutputStream(out);</p><p>  objectOut.writeObject(table);</p><p>  objectOut.close();</p><p>  out.clos

123、e();</p><p><b>  }</b></p><p>  catch(Exception ee)</p><p><b>  {</b></p><p><b>  }</b></p><p><b>  }</b>&l

124、t;/p><p><b>  }</b></p><p>  public void 刪除日志(int year,int month,int day)</p><p><b>  {</b></p><p>  String key=""+year+""+mont

125、h+""+day;</p><p>  if(table.containsKey(key))</p><p><b>  { </b></p><p>  String m="刪除"+year+"年"+month+"月"+day+"日的日志嗎?"

126、;;</p><p>  int ok=JOptionPane.showConfirmDialog(this,m,"詢問",JOptionPane.YES_NO_OPTION,</p><p>  JOptionPane.QUESTION_MESSAGE);</p><p>  if(ok==JOptionPane.YES_OPTION)<

127、/p><p><b>  { </b></p><p><b>  try</b></p><p><b>  {</b></p><p>  FileInputStream inOne=new FileInputStream(file);</p><p&g

128、t;  ObjectInputStream inTwo=new ObjectInputStream(inOne);</p><p>  table=(Hashtable)inTwo.readObject();</p><p>  inOne.close();</p><p>  inTwo.close();</p><p>  table.r

129、emove(key); </p><p>  FileOutputStream out=new FileOutputStream(file);</p><p>  ObjectOutputStream objectOut=new ObjectOutputStream(out);</p><p&

130、gt;  objectOut.writeObject(table);</p><p>  objectOut.close();</p><p>  out.close();</p><p>  text.setText(null);</p><p><b>  }</b></p><p>  ca

131、tch(Exception ee)</p><p><b>  {</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b> 

132、 else</b></p><p><b>  {</b></p><p>  String m=""+year+"年"+month+"月"+day+"無日志記錄";</p><p>  JOptionPane.showMessageDialog(thi

133、s,m,"提示",JOptionPane.WARNING_MESSAGE);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  4、)Year 類&l

134、t;/b></p><p>  import javax.swing.*;</p><p>  import java.awt.*;</p><p>  import java.awt.event.*;</p><p>  public class Year extends Box implements ActionListener&l

135、t;/p><p><b>  {</b></p><p>  int year; </p><p>  JTextField showYear=null; </p><p>  JButton 明年,去年;</p><p>  C

136、alendarPad 日歷;</p><p>  public Year(CalendarPad 日歷)</p><p><b>  { </b></p><p>  super(BoxLayout.X_AXIS); </p><p>  showYear=new JTextField(4);</p

137、><p>  showYear.setForeground(Color.blue);</p><p>  showYear.setFont(new Font("TimesRomn",Font.BOLD,14)); </p><p>  this.日歷=日歷;</p><p>  year=日歷.getYear();</p

138、><p>  明年=new JButton("下年");</p><p>  去年=new JButton("上年");</p><p><b>  add(去年);</b></p><p>  add(showYear);</p><p><b> 

139、 add(明年);</b></p><p>  showYear.addActionListener(this);</p><p>  去年.addActionListener(this);</p><p>  明年.addActionListener(this);</p><p><b>  }</b>&l

溫馨提示

  • 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

提交評論