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

下載本文檔

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

文檔簡介

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

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

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

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

5、-</p><p>  4.結束語- 9 -</p><p>  5.致 謝- 9 -</p><p>  6.參考文獻- 10 -</p><p>  7.附錄A:源程序- 11 -</p><p>  8附錄B:實驗體會- 24 -</p><p><b>  摘

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

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

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

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

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

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

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

13、t;</p><p> ?。?)界面的左側是日歷。該日歷可以按年前后翻動,當鼠標單擊“上一年”按鈕時,當前日歷的年份將減一;當鼠標左鍵單擊“下年”按鈕,當前日歷的年份將加一。 (2)也可以在某年內按月前后翻動。當鼠標左鍵單擊“上月”按鈕時,當前日歷的月份將減一;當鼠標左鍵單擊“下月” 當前日歷表的月份將加一。 (3)使用鼠標左鍵在要選擇的日期上單擊,如有記事內容,程序將彈出對話框提示該日有記事內容,提

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

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

16、lt;p>  圖1 系統(tǒng)功能結構圖</p><p>  3.5運行功能(截圖) </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.結束語</b></p><p>  從本次課程設計的完成中,我們了解了課程設計的要求與方法,學會了程序設計基本步驟。進一步提高了團隊合作的意識。同時,使我們感覺到,一個優(yōu)秀的程序,不僅僅是可以運行的,更應該

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

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

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

21、;<p>  [4] Java并發(fā)編程—設計原則與模式[M].北京:中國電力出版社,2004,2.</p><p>  [5] 印昊.java與面向對象程序設計.高等教育出版社.2004.4.</p><p>  [6] 耿祥義,《Java課程設計》,清華大學出版社,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 負責改變月;</p><p>  Year 負責改變年;</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>  負責改變年=new Year(this);</p><p>  負責改變年.setYear(year);</p><p>  負責改變月=new Month(this);</

30、p><p>  負責改變月.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(負責改變年);</p><p>  box.add(負責改變月);</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、(負數(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>  設置日歷牌(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 設置日歷牌(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.設置信息條(year,month,day);</p><p>  

67、notepad.設置文本區(qū)(null);</p><p>  notepad.獲取日志內容(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>  日歷.設置日歷牌(日歷.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>  日歷.設置日歷牌(日歷.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、設置日歷牌(日歷.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>  日歷.設置日歷牌(日歷.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 設置信息條(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 設置文本區(qū)(String s)</p><p><b>  {</b></p><p>  text.setText(s);</p><p><b>  }</b></p><p>  pub

109、lic void 獲取日志內容(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 日志內容=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,日志內容); </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)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論