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

下載本文檔

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

文檔簡介

1、<p><b>  本科生課程設(shè)計</b></p><p><b>  評語:</b></p><p>  課程設(shè)計時間:2010年12月20日--2010年12月24日</p><p> 課程名稱Java程序設(shè)計課程設(shè)計</p><p> 課程編號</p><p>

2、; 題目日歷記事本</p><p> 學(xué)號200811622214</p><p> 學(xué)生姓名</p><p> 所在專業(yè)信息管理與信息系統(tǒng)</p><p> 所在班級</p><p> 指導(dǎo)教師</p><p> 成績</p><p> 教師簽字</p>

3、<p><b>  目 錄</b></p><p>  摘要··························

4、3;·····················2</p><p>  1.引言··········

5、3;····································&#

6、183;2</p><p>  2. 設(shè)計的目的與任務(wù)······························&

7、#183;·····2</p><p>  3.設(shè)計方案··························

8、;··················3</p><p>  3.1總體設(shè)計·············&#

9、183;···························3</p><p>  3.2設(shè)計要求····

10、;····································

11、83;3</p><p>  3.3系統(tǒng)的主要功能······························

12、83;····3</p><p>  3.4各個類的組合結(jié)構(gòu)圖··························&

13、#183;····4</p><p>  3.5各個類說明··························

14、83;············4</p><p>  3.5.1 CalendarWindow類················

15、3;···········4</p><p>  3.5.2 CalendarMessage類·················

16、3;·······11</p><p>  3.5.3 CalendarPad類······················&

17、#183;······13</p><p>  3.5.4 NotePad類·······················&#

18、183;········14</p><p>  3.5.5 CalendarImage類····················

19、83;······19</p><p>  3.5.6 Clock類························

20、··········20</p><p>  4.各種功能截圖·····················&

21、#183;·················24</p><p>  5. 課程設(shè)計總結(jié)·············&

22、#183;·························26</p><p>  《Java程序設(shè)計》課程設(shè)計</p><p><b

23、>  ——日歷記事本 </b></p><p><b>  摘 要</b></p><p>  本課程設(shè)計通過代碼實現(xiàn)將理論知識和具體實踐相結(jié)合,鞏固提高了對JAVA的相關(guān)方法與概念的理解,使學(xué)生的發(fā)散思維及動手能力進(jìn)一步加強(qiáng),加強(qiáng)對計算機(jī)及軟件工程的進(jìn)一步了解。</p><p>  在這個課程設(shè)計中,我們做成了一個有日

24、歷標(biāo)記的記事本軟件,日歷記事本面板由日歷、記事本、圖片、時鐘四部分組成。日歷部分可以選擇不同的年份、月份、日期和星期;記事本模塊可以實現(xiàn)查看,保存,刪除日志等操作;并且每一步操作都有相應(yīng)提示;圖片模塊可以顯示預(yù)設(shè)的圖片;時鐘模塊可以用時鐘來顯示當(dāng)前時間。本軟件是一個實用性較強(qiáng),簡潔,美觀,方便的功能軟件。</p><p><b>  引言</b></p><p>  

25、Java是一種純面向?qū)ο蟮摹⒕W(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è)計也不是很復(fù)雜,但在此程序的設(shè)計

26、過程也是一個學(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ǔ)來實現(xiàn)“日歷記事本”的“日歷”和“記事本”的雙重功能。

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

28、案</b></p><p><b>  3.1 總體設(shè)計</b></p><p> ?。?)問題定義:創(chuàng)建日歷記事本,實現(xiàn)對某日期的事情進(jìn)行記錄這主要功能,并能顯示設(shè)置的圖片和時鐘,增加美觀。</p><p> ?。?)問題分析:通過對“日歷記事本”這一題材的分析,我需要四個類來實現(xiàn)其“日歷”和“記事本”這兩大功能。通過主類Cale

29、ndWindow創(chuàng)建動日歷記事本軟件的主窗口,該類含有main方法,程序從該類開始執(zhí)行。再用余下CalendarPad、CalendarMessage 、NotePad類來顯示并改變?nèi)掌诤蛯崿F(xiàn)記事本的功能。而CalendarImage和Clock這兩個類用來顯示圖片和時鐘。</p><p>  (3)研究意義:通過本次課程設(shè)計,我們掌握了Java語言的基本運用,提高了理論結(jié)合實際的能力。 </p>

30、<p><b>  3.2設(shè)計要求 </b></p><p> ?。?)界面的左側(cè)是日歷和一幅圖。該日歷可以按年前后翻動,用鼠標(biāo)鼠標(biāo)單擊“上年”按鈕時,當(dāng)前日歷的年份將減一;當(dāng)鼠標(biāo)左鍵單擊“下年”按鈕,當(dāng)前日歷的年份將加一。該日歷還可以在某年內(nèi)按月前月后翻動,當(dāng)鼠標(biāo)左鍵單擊“上月”按鈕時,當(dāng)前日歷的月份將減一;當(dāng)鼠標(biāo)左鍵單擊“下月” 當(dāng)前日歷表的月份將加一。圖片是為了增加美觀而加進(jìn)

31、去的。 (2)系統(tǒng)界面的右側(cè)是記事本和一個鬧鐘。用鼠標(biāo)單擊日歷上的日期,就可以通過該記事本編輯有關(guān)日志,并將日志保存到一個文件,該文件的名字由該日期組成的字符序列命名。用戶可以查看,刪除某個日期的日志,也可以繼續(xù)向某個日志添加新內(nèi)容。</p><p>  時鐘能夠?qū)崟r顯示當(dāng)前的時間。 </p><p> ?。?)當(dāng)某個日期有日志時,在日歷表該日期的外觀上就會出現(xiàn)“yes”標(biāo)記,表明

32、這個日期有日志,當(dāng)用戶刪除某個日期的日志后,該日期的外觀上“yes”標(biāo)志就會消失。</p><p>  3.3系統(tǒng)的主要功能 </p><p>  (1)可以對個人日志進(jìn)行添加、查閱、刪除;</p><p>  (2)可以方便地在任何日期記載個人日志以及查看某個日期記載的日志 ;</p><p>  (3)可以顯示當(dāng)前日期與時間。</p

33、><p>  3.4各個類的組合結(jié)構(gòu)圖</p><p><b>  3.5 各個類說明</b></p><p> ?。?)主函數(shù)CalendarWindow類</p><p>  該類是整個程序的主框架,是javax.swing包中Jframe的一個子類。并實現(xiàn)了ActionListener、MouseListener和Fo

34、cusListener接口。以下是該類的有關(guān)數(shù)據(jù)說明!</p><p><b>  成員變量</b></p><p>  year,month和day是int型變量。它們的值分別確定年份、月份和日期。</p><p>  calendarMessage是CalnedarMessage對象,該對象用來處理與日期有關(guān)的數(shù)據(jù)。</p>

35、<p>  calendarPad是CalendarPad對象,該對象可以顯示與日期有關(guān)的數(shù)據(jù)。</p><p>  notPad是NotPad的對象。具有編輯、讀取、保存和刪除日志的功能。</p><p>  showYear和showMonth是JtextField類創(chuàng)建的文本框,用來顯示年月。</p><p>  showDay數(shù)組的每個單元是Jte

36、xtField類創(chuàng)建的用來顯示日期的文本框。</p><p>  calendarImage是CalendarImage創(chuàng)建的對象,用來顯示圖像。</p><p>  clock是Clock創(chuàng)建的對象,用來顯示時鐘。</p><p>  nextYear,PreviousYear,nextMonth和PreviousMonth是JButton創(chuàng)建的按鈕對象,名字依次

37、為“下年、上年、下月、上月”。這些按鈕都將當(dāng)前窗口注冊為自己的ActionEvent事件監(jiān)視器。</p><p>  savaDailyRecord,deleteDailyRecord和readDailyRecord是JButton創(chuàng)建的按鈕對象,名字依次為“保存日志、刪除日志、讀取日志”。這些按鈕都將當(dāng)前窗口注冊為自己的ActionEvent事件監(jiān)視器。</p><p><b>

38、;  方法</b></p><p>  CalendarWindow()是構(gòu)造方法,負(fù)責(zé)完成窗口初始化。</p><p>  actionPerformed(ActionEvent)方法是CalendarWindow類實現(xiàn)的ActionListener接口中的方法。CalendarWindow創(chuàng)建的窗口是nextYear,previousYear,nextMonth,previ

39、ousMonth,saveDailyRecord,deleteDailyRecord和readDailyRecord按鈕的ActionEvent事件監(jiān)視器,當(dāng)用戶單擊其中按鈕時,窗口將執(zhí)行actionPerformed(ActionEvent)方法進(jìn)行相應(yīng)的操作。</p><p>  mousePressed(MouseEvent)方法是CalendarWindow類實現(xiàn)的MouseListener接口中的方法。

40、CalendarWindow創(chuàng)建的窗口時showDay數(shù)組中的JtextField文本框的MouseEvent事件監(jiān)視器,當(dāng)用戶在某個顯示日期的文本框上按下鼠標(biāo)左鍵時,窗口將執(zhí)行mousePress(MouseEvent)方法進(jìn)行相應(yīng)操作。</p><p>  focusGained(FocusEvent)和focusLost(FocusEvent)方法是CalendarWindow類實現(xiàn)的FocusListen

41、er接口中的方法。CalendarWindow創(chuàng)建窗口是showDay數(shù)組中的JtextField文本框的FocusEvent事件監(jiān)視器,當(dāng)用戶的操作導(dǎo)致某個顯示日期的文本框的焦點發(fā)生變化時,窗口將執(zhí)行focusGained(FocusEvent)或focusLost(FocusEvent)方法進(jìn)行相應(yīng)的操作。</p><p>  doMark()方法負(fù)責(zé)對有日志的日期作出標(biāo)志。</p><p

42、>  main方法是程序運行的入口方法。</p><p><b>  詳細(xì)代碼:</b></p><p>  import javax.swing.*;</p><p>  import java.awt.*;</p><p>  import java.awt.event.*;</p><p&

43、gt;  import java.util.*;</p><p>  import java.io.*;</p><p>  public class CalendarWindow extends JFrame implements ActionListener,</p><p>  MouseListener,FocusListener</p>&l

44、t;p><b>  {</b></p><p>  int year,month,day;</p><p>  CalendarMessage calendarMessage;</p><p>  CalendarPad calendarPad;</p><p>  NotePad notePad;</p&g

45、t;<p>  JTextField showYear,showMonth;</p><p>  JTextField showDay[];</p><p>  CalendarImage calendarImage;</p><p>  Clock clock;</p><p>  JButton nextYear,previ

46、ousYear,nextMonth,previousMonth;</p><p>  JButton saveDailyRecord,deleteDailyRecord,readDailyRecord;</p><p><b>  File dir;</b></p><p>  Color backColor=Color.white;</

47、p><p>  public CalendarWindow()</p><p><b>  {</b></p><p>  dir= new File("./dailyRecord");</p><p>  dir.mkdir();</p><p>  showDay = new

48、JTextField[42];</p><p>  for(int i=0;i<showDay.length;i++)</p><p><b>  {</b></p><p>  showDay[i]=new JTextField();</p><p>  showDay[i].setBackground(back

49、Color);</p><p>  showDay[i].setLayout(new GridLayout(3,3));</p><p>  showDay[i].addMouseListener(this);</p><p>  showDay[i].addFocusListener(this);</p><p><b>  }&

50、lt;/b></p><p>  calendarMessage = new CalendarMessage();</p><p>  calendarPad = new CalendarPad();</p><p>  notePad = new NotePad();</p><p>  Calendar calendar = Cal

51、endar.getInstance();</p><p>  calendar.setTime(new Date());</p><p>  year = calendar.get(Calendar.YEAR);</p><p>  month = calendar.get(Calendar.MONTH)+1;</p><p>  day =

52、 calendar.get(Calendar.DAY_OF_MONTH);</p><p>  calendarMessage.setYear(year);</p><p>  calendarMessage.setMonth(month);</p><p>  calendarMessage.setDay(day);</p><p>  c

53、alendarPad.setCalendarMessage(calendarMessage);</p><p>  calendarPad.setShowDayTextField(showDay);</p><p>  notePad.setShowMessage(year,month,day); </p><p>  calendarPad.showMonthCa

54、lendar();</p><p><b>  doMark();</b></p><p>  calendarImage = new CalendarImage();</p><p>  calendarImage.setImageFile(new File("flower.jpg"));</p><p

55、>  clock = new Clock();</p><p>  JSplitPane splitV1 = new JSplitPane(JSplitPane.VERTICAL_SPLIT,calendarPad,calendarImage);</p><p>  JSplitPane splitV2 = new JSplitPane(JSplitPane.VERTICAL_SPL

56、IT,notePad,clock);</p><p>  JSplitPane splitH = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,splitV1,splitV2);</p><p>  add(splitH,BorderLayout.CENTER);</p><p>  showYear = new JTextF

57、ield(""+year,6);</p><p>  showYear.setFont(new Font("TimesRoman",Font.BOLD,12));</p><p>  showYear.setHorizontalAlignment(JTextField.CENTER);</p><p>  showMonth

58、= new JTextField(""+month,4);</p><p>  showMonth.setFont(new Font("TimesRoman",Font.BOLD,12));</p><p>  showMonth.setHorizontalAlignment(JTextField.CENTER);</p><p&

59、gt;  nextYear = new JButton("下年");</p><p>  previousYear = new JButton("上年");</p><p>  nextMonth = new JButton("下月");</p><p>  previousMonth = new JBut

60、ton("上月");</p><p>  nextYear.addActionListener(this);</p><p>  previousYear.addActionListener(this);</p><p>  nextMonth.addActionListener(this);</p><p>  prev

61、iousMonth.addActionListener(this);</p><p>  showYear.addActionListener(this);</p><p>  JPanel north = new JPanel();</p><p>  north.add(previousYear);</p><p>  north.add

62、(showYear);</p><p>  north.add(nextYear);</p><p>  north.add(previousMonth);</p><p>  north.add(showMonth);</p><p>  north.add(nextMonth);</p><p>  add(nor

63、th,BorderLayout.NORTH);</p><p>  saveDailyRecord = new JButton("保存日志");</p><p>  deleteDailyRecord = new JButton("刪除日志");</p><p>  readDailyRecord = new JButton(

64、"讀取日志");</p><p>  saveDailyRecord.addActionListener(this);</p><p>  deleteDailyRecord.addActionListener(this);</p><p>  readDailyRecord.addActionListener(this);</p>

65、<p>  JPanel pSouth = new JPanel();</p><p>  pSouth.add(saveDailyRecord);</p><p>  pSouth.add(deleteDailyRecord);</p><p>  pSouth.add(readDailyRecord);</p><p>  a

66、dd(pSouth,BorderLayout.SOUTH);</p><p>  setVisible(true);</p><p>  setBounds(70,70,770,500);</p><p>  validate();</p><p>  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE

67、);</p><p><b>  }</b></p><p>  public void actionPerformed(ActionEvent e)</p><p><b>  {</b></p><p>  if(e.getSource()==nextYear)</p><p

68、><b>  {</b></p><p><b>  year++;</b></p><p>  showYear.setText(""+year);</p><p>  calendarMessage.setYear(year);</p><p>  calendarPa

69、d.setCalendarMessage(calendarMessage);</p><p>  calendarPad.showMonthCalendar();</p><p>  notePad.setShowMessage(year,month,day);</p><p><b>  doMark();</b></p>&l

70、t;p><b>  }</b></p><p>  else if (e.getSource()==previousYear)</p><p><b>  {</b></p><p><b>  year--;</b></p><p>  showYear.setText

71、(""+year);</p><p>  calendarMessage.setYear(year);</p><p>  calendarPad.setCalendarMessage(calendarMessage);</p><p>  calendarPad.showMonthCalendar();</p><p>

72、  notePad.setShowMessage(year,month,day);</p><p><b>  doMark();</b></p><p><b>  }</b></p><p>  else if (e.getSource()==nextMonth)</p><p><b&g

73、t;  {</b></p><p><b>  month++;</b></p><p>  if(month>12) month=1;</p><p>  showMonth.setText(""+month);</p><p>  calendarPad.setCalendarM

74、essage(calendarMessage);</p><p>  calendarPad.showMonthCalendar();</p><p>  notePad.setShowMessage(year,month,day);</p><p><b>  doMark();</b></p><p><b&g

75、t;  }</b></p><p>  else if (e.getSource()==previousMonth)</p><p><b>  {</b></p><p><b>  month--;</b></p><p>  if(month<1) month=12;<

76、/p><p>  showMonth.setText(""+month);</p><p>  calendarPad.setCalendarMessage(calendarMessage);</p><p>  calendarPad.showMonthCalendar();</p><p>  notePad.setSho

77、wMessage(year,month,day);</p><p><b>  doMark();</b></p><p><b>  }</b></p><p>  else if (e.getSource()==showYear)</p><p><b>  {</b>&l

78、t;/p><p>  String s = showYear.getText().trim();</p><p>  char a[] = s.toCharArray();</p><p>  boolean boo = false;</p><p>  for(int i = 0;i < a.length;i++)</p>

79、<p><b>  {</b></p><p>  if(!(Character.isDigit(a[i])))</p><p>  boo = true;</p><p><b>  }</b></p><p>  if(boo==true)</p><p>  

80、JOptionPane.showMessageDialog(this,"你輸入了非法年份","警告!",</p><p>  JOptionPane.WARNING_MESSAGE);</p><p>  else if(boo==false)</p><p>  year = Integer.parseInt(s);<

81、/p><p>  showYear.setText(""+year);</p><p>  calendarMessage.setYear(year);</p><p>  calendarPad.setCalendarMessage(calendarMessage);</p><p>  calendarPad.showMo

82、nthCalendar();</p><p>  notePad.setShowMessage(year,month,day);</p><p><b>  doMark();</b></p><p><b>  }</b></p><p>  else if (e.getSource()== sa

83、veDailyRecord)</p><p><b>  {</b></p><p>  notePad.save(dir,year,month,day);</p><p><b>  doMark();</b></p><p><b>  }</b></p>&

84、lt;p>  else if(e.getSource()==deleteDailyRecord)</p><p><b>  {</b></p><p>  notePad.delete(dir,year,month,day);</p><p><b>  doMark();</b></p><p

85、><b>  }</b></p><p>  else if (e.getSource()==readDailyRecord)</p><p><b>  {</b></p><p>  notePad.read(dir,year,month,day);</p><p><b>  

86、doMark();</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  public void mousePressed(MouseEvent e)</p><p><b>  {</b></p>

87、<p>  JTextField text = (JTextField)e.getSource();</p><p>  String str = text.getText().trim();</p><p><b>  try</b></p><p><b>  {</b></p><p&

88、gt;  day = Integer.parseInt(str);</p><p><b>  }</b></p><p>  catch (NumberFormatException exp)</p><p><b>  {}</b></p><p>  calendarMessage.setDa

89、y(day);</p><p>  notePad.setShowMessage(year,month,day);</p><p><b>  }</b></p><p>  public void mouseReleased(MouseEvent e){}</p><p>  public void mouseEnte

90、red(MouseEvent e){}</p><p>  public void mouseExited(MouseEvent e){}</p><p>  public void mouseClicked(MouseEvent e){}</p><p>  public void focusGained(FocusEvent e)</p><

91、p><b>  {</b></p><p>  Component com = (Component)e.getSource();</p><p>  com.setBackground(Color.pink);</p><p><b>  }</b></p><p>  public voi

92、d focusLost(FocusEvent e)</p><p><b>  {</b></p><p>  Component com = (Component)e.getSource();</p><p>  com.setBackground(backColor);</p><p><b>  }<

93、;/b></p><p>  public void doMark()</p><p><b>  {</b></p><p>  for(int i=0;i<showDay.length;i++)</p><p><b>  {</b></p><p>  sh

94、owDay[i].removeAll();</p><p>  String str = showDay[i].getText().trim();</p><p><b>  try</b></p><p><b>  {</b></p><p>  int n = Integer.parseInt

95、(str);</p><p>  if(isHaveDailyRecord(n)==true)</p><p><b>  {</b></p><p>  JLabel mess = new JLabel("yes");</p><p>  mess.setFont(new Font("Ti

96、mesRoman",Font.PLAIN,11));</p><p>  mess.setForeground(Color.blue);</p><p>  showDay[i].add(mess);</p><p><b>  }</b></p><p><b>  }</b></

97、p><p>  catch (Exception exp){}</p><p><b>  }</b></p><p>  calendarPad.repaint();</p><p>  calendarPad.validate();</p><p><b>  }</b>&l

98、t;/p><p>  public boolean isHaveDailyRecord(int n)</p><p><b>  {</b></p><p>  String key = ""+year+""+month+""+n;</p><p>  String

99、 []dayFile = dir.list();</p><p>  boolean boo = false;</p><p>  for(int k = 0;k<dayFile.length;k++)</p><p><b>  {</b></p><p>  if(dayFile[k].equals(key+&

100、quot;.txt"))</p><p><b>  {</b></p><p>  boo = true;</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }&l

101、t;/b></p><p>  return boo;</p><p><b>  }</b></p><p>  public static void main(String args[]) </p><p><b>  {</b></p><p>  new Cal

102、endarWindow();</p><p><b>  }</b></p><p><b>  }</b></p><p> ?。?)CalendarMessage類</p><p>  CalendarMessage類創(chuàng)建的對象calendarMessage是CalendarWindow窗口的重

103、要成員對象之一,負(fù)責(zé)處理和日期有關(guān)的數(shù)據(jù)。該類的有關(guān)數(shù)據(jù)說明如下:</p><p><b>  成員變量</b></p><p>  year,month,day是int型數(shù)據(jù),它們的值分別確定年份、月份和日期。</p><p><b>  方法</b></p><p>  setYear(int)

104、和getYear()方法分別用來設(shè)置year和獲取year的值。</p><p>  setMonth(int)和getMonth()方法分別用來設(shè)置month和獲取month的值。</p><p>  setDay(int)和getDay()方法分別用來設(shè)置和獲取day的值。</p><p>  getMonthCalendar()方法是用來處理日期數(shù)據(jù),使其按著

105、習(xí)慣來顯示。即日歷牌中每行的第一列為“星期天”。getMonthCalendar()方法根據(jù)year,month和day的值返回一個存放著“日歷”數(shù)據(jù)的String類型的數(shù)組,例如,如果某月有30天,而且該月的第一天是星期三,那么返回的String類型的數(shù)組是:“”,“”,“”,“1”,“2”,·····,“30”。</p><p><b>  詳細(xì)代碼

106、:</b></p><p>  import java.util.Calendar;</p><p>  public class CalendarMessage{ </p><p>  int year=-1,month=-1,day=-1;</p><p>  public void setYear(int year){<

107、;/p><p>  this.year=year;</p><p><b>  }</b></p><p>  public int getYear(){</p><p>  return year;</p><p><b>  }</b></p><p>

108、;  public void setMonth(int month){</p><p>  if(month<=12&&month>=1)</p><p>  this.month=month;</p><p><b>  else</b></p><p>  this.month=1;<

109、;/p><p><b>  }</b></p><p>  public int getMonth(){</p><p>  return month;</p><p><b>  }</b></p><p>  public void setDay(int day){</

110、p><p>  this.day=day;</p><p><b>  }</b></p><p>  public int getday()</p><p><b>  {</b></p><p>  return day;</p><p><b&

111、gt;  }</b></p><p>  public String [] getMonthCalendar(){</p><p>  String [] day=new String[42];</p><p>  Calendar rili=Calendar.getInstance();</p><p>  rili.set(y

112、ear,month-1,1);//將日歷翻到y(tǒng)ear年month月1日</p><p>  int 星期幾=rili.get(Calendar.DAY_OF_WEEK)-1;</p><p>  int dayAmount=0;</p><p>  if(month==1||month==3||month==5||month==7||month==8||month=

113、=10||month==12)</p><p>  dayAmount=31;</p><p>  if(month==4||month==6||month==9||month==11)</p><p>  dayAmount=30;</p><p>  if(month==2)</p><p>  if(((year

114、%4==0)&&(year%100!=0))||year%400==0)</p><p>  dayAmount=29;</p><p><b>  else </b></p><p>  dayAmount=28;</p><p>  for(int i=0;i<星期幾;i++)</p>

115、;<p>  day[i]=" ";</p><p>  for(int i=星期幾,n=1;i<星期幾+dayAmount;i++){</p><p>  day[i]=String.valueOf(n);</p><p><b>  n++;</b></p><p><b

116、>  }</b></p><p>  for (int i=星期幾+dayAmount;i<42;i++ )</p><p>  day[i]=" ";</p><p>  return day;</p><p><b>  }</b></p><p>

117、<b>  }</b></p><p> ?。?)CalendarPad類</p><p>  CalendarPad類是javax.swing包中Jpanel容器的子類,所創(chuàng)建的對象:calendarPad是CalendarWindow類中最重要的成員之一,負(fù)責(zé)顯示經(jīng)CalendarMessage類處理后的日期數(shù)據(jù),被添加到CalendarWindow窗口的左上側(cè)

118、。以下是該類的有關(guān)說明:</p><p><b>  成員變量</b></p><p>  year,month和day是int型數(shù)據(jù),它們的值分別確定年份、月份和日期</p><p>  calendarMessage是CalendarMessage對象,該對象可以處理和日期有關(guān)的數(shù)據(jù)。</p><p>  showD

119、ay數(shù)組的每個單元是JtextField類創(chuàng)建的用來顯示日期的文本框。</p><p>  “星期”是String數(shù)組,單元的值依次為“SUN日”、“MON一”、“TUE二”、“WED三”、“THU四”、“FRI五”、“SAT六”。</p><p><b>  方法</b></p><p>  CalendarPad()是構(gòu)造方法,用來創(chuàng)建ca

120、lendarPad對象。</p><p>  setShowDayTextField(JtextField[])方法負(fù)責(zé)設(shè)置showDay數(shù)組。</p><p>  setCalendarMessage(CalendarMessage)方法負(fù)責(zé)設(shè)置calendarMessage對象。</p><p>  showMonthCalendar()方法負(fù)責(zé)顯示“日歷”。&

121、lt;/p><p><b>  詳細(xì)代碼:</b></p><p>  import javax.swing.*;</p><p>  import java.awt.*;</p><p>  import java.awt.event.*;</p><p>  import java.util.*;

122、</p><p>  public class CalendarPad extends JPanel{</p><p>  int year,month,day;</p><p>  CalendarMessage calendarMessage;</p><p>  JTextField []showDay;</p><

123、p>  JLabel title [];</p><p>  String [] 星期={"SUN 日","MON 一","TUE 二","WED 三","THU 四","FRI 五","SAT 六"};</p><p>  JPanel nor

124、th,center;</p><p>  public CalendarPad(){</p><p>  setLayout(new BorderLayout());</p><p>  north=new JPanel();</p><p>  north.setLayout(new GridLayout(1,7));</p>

125、<p>  center=new JPanel();</p><p>  center.setLayout(new GridLayout(6,7));</p><p>  add(center,BorderLayout.CENTER);</p><p>  add(north,BorderLayout.NORTH);</p><p&g

126、t;  title=new JLabel[7];</p><p>  for(int j=0;j<7;j++){</p><p>  title[j]=new JLabel();</p><p>  title[j].setFont(new Font("TimesRoman",Font.BOLD,12));</p><p

127、>  title[j].setText(星期[j]);</p><p>  title[j].setHorizontalAlignment(JLabel.CENTER);</p><p>  title[j].setBorder(BorderFactory.createRaisedBevelBorder());</p><p>  north.add(titl

128、e[j]);</p><p><b>  }</b></p><p>  title[0].setForeground(Color.red);</p><p>  title[6].setForeground(Color.blue);</p><p><b>  }</b></p>&

129、lt;p>  public void setShowDayTextField(JTextField [] text){</p><p>  showDay=text;</p><p>  for(int i=0;i<showDay.length;i++){</p><p>  showDay[i].setFont(new Font("Times

130、Roman",Font.BOLD,15));</p><p>  showDay[i].setHorizontalAlignment(JTextField.CENTER);</p><p>  showDay[i].setEditable(false);</p><p>  center.add(showDay[i]);</p><p&

131、gt;<b>  }</b></p><p><b>  }</b></p><p>  public void setCalendarMessage(CalendarMessage calendarMessage){</p><p>  this.calendarMessage=calendarMessage;</

132、p><p><b>  }</b></p><p>  public void showMonthCalendar(){</p><p>  String [] a=calendarMessage.getMonthCalendar();</p><p>  for(int i=0;i<42;i++)</p>

133、<p>  showDay[i].setText(a[i]);</p><p>  validate();</p><p><b>  }</b></p><p><b>  }</b></p><p>  (4)NotePad類</p><p>  NoteP

134、ad類javax.swing包中的Jpanel容器的子類,實現(xiàn)了ActionListener接口,所創(chuàng)建的對象:notePad是MineGame CalendarWindow類中的重要成員之一,作為一個容器添加到CalendarWindow窗口的右上側(cè)以,下是該類的有關(guān)說明:</p><p><b>  1)成員變量</b></p><p>  text 是Jtext

135、Area創(chuàng)建的文本區(qū),可在text中編譯多行文本。</p><p>  showMessage 是 JtextField 創(chuàng)建的文本條,用來顯示和日期相關(guān)的數(shù)據(jù)。</p><p>  menu是 JpopupMenu 創(chuàng)建的彈出式菜單。</p><p>  itemCopy、itemCut、itemPaste、itemClear 是JmenuItem 創(chuàng)建的菜單項,

136、名字依次是“復(fù)制”, “剪切”, “黏貼”, “清空”。</p><p><b>  2)方法</b></p><p>  NotePad()構(gòu)造方法,用來創(chuàng)建notePad對象。</p><p>  setShowMessage(int,int,int)方法根據(jù)參數(shù)指定的日期數(shù)據(jù)顯示有關(guān)日期信息。</p><p>  

137、save(File,int,int,int)方法根據(jù)參數(shù)指定日期保存日志</p><p>  delete(File,int,int,int) 用于刪除日志</p><p>  read(File,int,int, int)用于讀取日志。</p><p><b>  詳細(xì)代碼:</b></p><p>  import

138、java.awt.*;</p><p>  import javax.swing.*;</p><p>  import java.io.*;</p><p>  import java.awt.event.*;</p><p>  public class NotePad extends JPanel implements ActionLi

139、stener{</p><p>  JTextArea text;</p><p>  JTextField showMessage;</p><p>  JPopupMenu menu;</p><p>  JMenuItem itemCopy,itemCut,itemPaste,itemClear;</p><p>

140、;  public NotePad(){</p><p>  showMessage=new JTextField();</p><p>  showMessage.setHorizontalAlignment(JTextField.CENTER);</p><p>  showMessage.setFont(new Font("TimesRoman&qu

141、ot;,Font.BOLD,16));</p><p>  showMessage.setForeground(Color.blue);</p><p>  showMessage.setBackground(Color.pink);</p><p>  showMessage.setBorder(BorderFactory.createRaisedBevelBor

溫馨提示

  • 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

提交評論