版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 本科生課程設(shè)計(jì)</b></p><p><b> 評(píng)語(yǔ):</b></p><p> 課程設(shè)計(jì)時(shí)間:2010年12月20日--2010年12月24日</p><p> 課程名稱Java程序設(shè)計(jì)課程設(shè)計(jì)</p><p> 課程編號(hào)</p><p>
2、; 題目日歷記事本</p><p> 學(xué)號(hào)200811622214</p><p> 學(xué)生姓名</p><p> 所在專業(yè)信息管理與信息系統(tǒng)</p><p> 所在班級(jí)</p><p> 指導(dǎo)教師</p><p> 成績(jī)</p><p> 教師簽字</p>
3、<p><b> 目 錄</b></p><p> 摘要··························
4、3;·····················2</p><p> 1.引言··········
5、3;····································
6、183;2</p><p> 2. 設(shè)計(jì)的目的與任務(wù)······························&
7、#183;·····2</p><p> 3.設(shè)計(jì)方案··························
8、;··················3</p><p> 3.1總體設(shè)計(jì)·············
9、183;···························3</p><p> 3.2設(shè)計(jì)要求····
10、;····································
11、83;3</p><p> 3.3系統(tǒng)的主要功能······························
12、83;····3</p><p> 3.4各個(gè)類的組合結(jié)構(gòu)圖··························&
13、#183;····4</p><p> 3.5各個(gè)類說(shuō)明··························
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è)計(jì)總結(jié)·············&
22、#183;·························26</p><p> 《Java程序設(shè)計(jì)》課程設(shè)計(jì)</p><p><b
23、> ——日歷記事本 </b></p><p><b> 摘 要</b></p><p> 本課程設(shè)計(jì)通過(guò)代碼實(shí)現(xiàn)將理論知識(shí)和具體實(shí)踐相結(jié)合,鞏固提高了對(duì)JAVA的相關(guān)方法與概念的理解,使學(xué)生的發(fā)散思維及動(dòng)手能力進(jìn)一步加強(qiáng),加強(qiáng)對(duì)計(jì)算機(jī)及軟件工程的進(jìn)一步了解。</p><p> 在這個(gè)課程設(shè)計(jì)中,我們做成了一個(gè)有日
24、歷標(biāo)記的記事本軟件,日歷記事本面板由日歷、記事本、圖片、時(shí)鐘四部分組成。日歷部分可以選擇不同的年份、月份、日期和星期;記事本模塊可以實(shí)現(xiàn)查看,保存,刪除日志等操作;并且每一步操作都有相應(yīng)提示;圖片模塊可以顯示預(yù)設(shè)的圖片;時(shí)鐘模塊可以用時(shí)鐘來(lái)顯示當(dāng)前時(shí)間。本軟件是一個(gè)實(shí)用性較強(qiáng),簡(jiǎn)潔,美觀,方便的功能軟件。</p><p><b> 引言</b></p><p>
25、Java是一種純面向?qū)ο蟮摹⒕W(wǎng)絡(luò)編程首選的語(yǔ)言。Java技術(shù)作為軟件開(kāi) 的一種革命性技術(shù),已被列為當(dāng)今世界信息技術(shù)的主流之一。為了適應(yīng)時(shí)代潮流,我們應(yīng)該加強(qiáng)對(duì)Java的學(xué)習(xí),更好的掌握這門(mén)課程。為此,我們成了一個(gè)課程小組,經(jīng)過(guò)小組成的商討之后,我們決定以“日歷記事本”為設(shè) 題材,借此鞏固加深我們對(duì)Java的了解。</p><p> 本次課程設(shè)計(jì)的實(shí)例雖然比較簡(jiǎn)單,程序設(shè)計(jì)也不是很復(fù)雜,但在此程序的設(shè)計(jì)
26、過(guò)程也是一個(gè)學(xué)習(xí)過(guò)程,更是對(duì)復(fù)雜程序的一個(gè)學(xué)習(xí)過(guò)程,還能培養(yǎng)我們的數(shù)抽象能力。因此,我們覺(jué)得這次課程設(shè)計(jì)是非常有意義的,能為我們今后學(xué)習(xí)面向過(guò)程的程序設(shè)計(jì)作一些鋪墊。</p><p><b> 2.設(shè)計(jì)目的與任務(wù)</b></p><p> 本課程設(shè)計(jì)所要求達(dá)到的目的和任務(wù):通過(guò)Java程序設(shè)計(jì)的一些重要理論基礎(chǔ)來(lái)實(shí)現(xiàn)“日歷記事本”的“日歷”和“記事本”的雙重功能。
27、并通過(guò)此次課程設(shè)計(jì)的訓(xùn)練,使學(xué)生鞏固和加深對(duì)Java這門(mén)課程的理解,通過(guò)利用所學(xué)到的計(jì)算科學(xué)的理論知識(shí),提高解決實(shí)際問(wèn)題的能力,增強(qiáng)運(yùn)算、編程和使用技術(shù)資料的技能,通過(guò)實(shí)際問(wèn)題的分析設(shè)計(jì)、編程和調(diào)試,掌握應(yīng)用軟件的分析方法和工程設(shè)計(jì)方法,能正確闡述設(shè)計(jì)和實(shí)驗(yàn)結(jié)果。通過(guò)這次課程設(shè)計(jì),培養(yǎng)實(shí)事求是、認(rèn)真、嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度和刻苦鉆研不斷創(chuàng)新的精神,逐步建立正確的全局觀念。</p><p><b> 3.設(shè)計(jì)方
28、案</b></p><p><b> 3.1 總體設(shè)計(jì)</b></p><p> ?。?)問(wèn)題定義:創(chuàng)建日歷記事本,實(shí)現(xiàn)對(duì)某日期的事情進(jìn)行記錄這主要功能,并能顯示設(shè)置的圖片和時(shí)鐘,增加美觀。</p><p> ?。?)問(wèn)題分析:通過(guò)對(duì)“日歷記事本”這一題材的分析,我需要四個(gè)類來(lái)實(shí)現(xiàn)其“日歷”和“記事本”這兩大功能。通過(guò)主類Cale
29、ndWindow創(chuàng)建動(dòng)日歷記事本軟件的主窗口,該類含有main方法,程序從該類開(kāi)始執(zhí)行。再用余下CalendarPad、CalendarMessage 、NotePad類來(lái)顯示并改變?nèi)掌诤蛯?shí)現(xiàn)記事本的功能。而CalendarImage和Clock這兩個(gè)類用來(lái)顯示圖片和時(shí)鐘。</p><p> ?。?)研究意義:通過(guò)本次課程設(shè)計(jì),我們掌握了Java語(yǔ)言的基本運(yùn)用,提高了理論結(jié)合實(shí)際的能力。 </p>
30、<p><b> 3.2設(shè)計(jì)要求 </b></p><p> ?。?)界面的左側(cè)是日歷和一幅圖。該日歷可以按年前后翻動(dòng),用鼠標(biāo)鼠標(biāo)單擊“上年”按鈕時(shí),當(dāng)前日歷的年份將減一;當(dāng)鼠標(biāo)左鍵單擊“下年”按鈕,當(dāng)前日歷的年份將加一。該日歷還可以在某年內(nèi)按月前月后翻動(dòng),當(dāng)鼠標(biāo)左鍵單擊“上月”按鈕時(shí),當(dāng)前日歷的月份將減一;當(dāng)鼠標(biāo)左鍵單擊“下月” 當(dāng)前日歷表的月份將加一。圖片是為了增加美觀而加進(jìn)
31、去的。 (2)系統(tǒng)界面的右側(cè)是記事本和一個(gè)鬧鐘。用鼠標(biāo)單擊日歷上的日期,就可以通過(guò)該記事本編輯有關(guān)日志,并將日志保存到一個(gè)文件,該文件的名字由該日期組成的字符序列命名。用戶可以查看,刪除某個(gè)日期的日志,也可以繼續(xù)向某個(gè)日志添加新內(nèi)容。</p><p> 時(shí)鐘能夠?qū)崟r(shí)顯示當(dāng)前的時(shí)間。 </p><p> ?。?)當(dāng)某個(gè)日期有日志時(shí),在日歷表該日期的外觀上就會(huì)出現(xiàn)“yes”標(biāo)記,表明
32、這個(gè)日期有日志,當(dāng)用戶刪除某個(gè)日期的日志后,該日期的外觀上“yes”標(biāo)志就會(huì)消失。</p><p> 3.3系統(tǒng)的主要功能 </p><p> (1)可以對(duì)個(gè)人日志進(jìn)行添加、查閱、刪除;</p><p> ?。?)可以方便地在任何日期記載個(gè)人日志以及查看某個(gè)日期記載的日志 ;</p><p> ?。?)可以顯示當(dāng)前日期與時(shí)間。</p
33、><p> 3.4各個(gè)類的組合結(jié)構(gòu)圖</p><p><b> 3.5 各個(gè)類說(shuō)明</b></p><p> (1)主函數(shù)CalendarWindow類</p><p> 該類是整個(gè)程序的主框架,是javax.swing包中Jframe的一個(gè)子類。并實(shí)現(xiàn)了ActionListener、MouseListener和Fo
34、cusListener接口。以下是該類的有關(guān)數(shù)據(jù)說(shuō)明!</p><p><b> 成員變量</b></p><p> year,month和day是int型變量。它們的值分別確定年份、月份和日期。</p><p> calendarMessage是CalnedarMessage對(duì)象,該對(duì)象用來(lái)處理與日期有關(guān)的數(shù)據(jù)。</p>
35、<p> calendarPad是CalendarPad對(duì)象,該對(duì)象可以顯示與日期有關(guān)的數(shù)據(jù)。</p><p> notPad是NotPad的對(duì)象。具有編輯、讀取、保存和刪除日志的功能。</p><p> showYear和showMonth是JtextField類創(chuàng)建的文本框,用來(lái)顯示年月。</p><p> showDay數(shù)組的每個(gè)單元是Jte
36、xtField類創(chuàng)建的用來(lái)顯示日期的文本框。</p><p> calendarImage是CalendarImage創(chuàng)建的對(duì)象,用來(lái)顯示圖像。</p><p> clock是Clock創(chuàng)建的對(duì)象,用來(lái)顯示時(shí)鐘。</p><p> nextYear,PreviousYear,nextMonth和PreviousMonth是JButton創(chuàng)建的按鈕對(duì)象,名字依次
37、為“下年、上年、下月、上月”。這些按鈕都將當(dāng)前窗口注冊(cè)為自己的ActionEvent事件監(jiān)視器。</p><p> savaDailyRecord,deleteDailyRecord和readDailyRecord是JButton創(chuàng)建的按鈕對(duì)象,名字依次為“保存日志、刪除日志、讀取日志”。這些按鈕都將當(dāng)前窗口注冊(cè)為自己的ActionEvent事件監(jiān)視器。</p><p><b>
38、; 方法</b></p><p> CalendarWindow()是構(gòu)造方法,負(fù)責(zé)完成窗口初始化。</p><p> actionPerformed(ActionEvent)方法是CalendarWindow類實(shí)現(xiàn)的ActionListener接口中的方法。CalendarWindow創(chuàng)建的窗口是nextYear,previousYear,nextMonth,previ
39、ousMonth,saveDailyRecord,deleteDailyRecord和readDailyRecord按鈕的ActionEvent事件監(jiān)視器,當(dāng)用戶單擊其中按鈕時(shí),窗口將執(zhí)行actionPerformed(ActionEvent)方法進(jìn)行相應(yīng)的操作。</p><p> mousePressed(MouseEvent)方法是CalendarWindow類實(shí)現(xiàn)的MouseListener接口中的方法。
40、CalendarWindow創(chuàng)建的窗口時(shí)showDay數(shù)組中的JtextField文本框的MouseEvent事件監(jiān)視器,當(dāng)用戶在某個(gè)顯示日期的文本框上按下鼠標(biāo)左鍵時(shí),窗口將執(zhí)行mousePress(MouseEvent)方法進(jìn)行相應(yīng)操作。</p><p> focusGained(FocusEvent)和focusLost(FocusEvent)方法是CalendarWindow類實(shí)現(xiàn)的FocusListen
41、er接口中的方法。CalendarWindow創(chuàng)建窗口是showDay數(shù)組中的JtextField文本框的FocusEvent事件監(jiān)視器,當(dāng)用戶的操作導(dǎo)致某個(gè)顯示日期的文本框的焦點(diǎn)發(fā)生變化時(shí),窗口將執(zhí)行focusGained(FocusEvent)或focusLost(FocusEvent)方法進(jìn)行相應(yīng)的操作。</p><p> doMark()方法負(fù)責(zé)對(duì)有日志的日期作出標(biāo)志。</p><p
42、> main方法是程序運(yùn)行的入口方法。</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)建的對(duì)象calendarMessage是CalendarWindow窗口的重
103、要成員對(duì)象之一,負(fù)責(zé)處理和日期有關(guān)的數(shù)據(jù)。該類的有關(guān)數(shù)據(jù)說(shuō)明如下:</p><p><b> 成員變量</b></p><p> year,month,day是int型數(shù)據(jù),它們的值分別確定年份、月份和日期。</p><p><b> 方法</b></p><p> setYear(int)
104、和getYear()方法分別用來(lái)設(shè)置year和獲取year的值。</p><p> setMonth(int)和getMonth()方法分別用來(lái)設(shè)置month和獲取month的值。</p><p> setDay(int)和getDay()方法分別用來(lái)設(shè)置和獲取day的值。</p><p> getMonthCalendar()方法是用來(lái)處理日期數(shù)據(jù),使其按著
105、習(xí)慣來(lái)顯示。即日歷牌中每行的第一列為“星期天”。getMonthCalendar()方法根據(jù)year,month和day的值返回一個(gè)存放著“日歷”數(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> (3)CalendarPad類</p><p> CalendarPad類是javax.swing包中Jpanel容器的子類,所創(chuàng)建的對(duì)象:calendarPad是CalendarWindow類中最重要的成員之一,負(fù)責(zé)顯示經(jīng)CalendarMessage類處理后的日期數(shù)據(jù),被添加到CalendarWindow窗口的左上側(cè)
118、。以下是該類的有關(guān)說(shuō)明:</p><p><b> 成員變量</b></p><p> year,month和day是int型數(shù)據(jù),它們的值分別確定年份、月份和日期</p><p> calendarMessage是CalendarMessage對(duì)象,該對(duì)象可以處理和日期有關(guān)的數(shù)據(jù)。</p><p> showD
119、ay數(shù)組的每個(gè)單元是JtextField類創(chuàng)建的用來(lái)顯示日期的文本框。</p><p> “星期”是String數(shù)組,單元的值依次為“SUN日”、“MON一”、“TUE二”、“WED三”、“THU四”、“FRI五”、“SAT六”。</p><p><b> 方法</b></p><p> CalendarPad()是構(gòu)造方法,用來(lái)創(chuàng)建ca
120、lendarPad對(duì)象。</p><p> setShowDayTextField(JtextField[])方法負(fù)責(zé)設(shè)置showDay數(shù)組。</p><p> setCalendarMessage(CalendarMessage)方法負(fù)責(zé)設(shè)置calendarMessage對(duì)象。</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> ?。?)NotePad類</p><p> NoteP
134、ad類javax.swing包中的Jpanel容器的子類,實(shí)現(xiàn)了ActionListener接口,所創(chuàng)建的對(duì)象:notePad是MineGame CalendarWindow類中的重要成員之一,作為一個(gè)容器添加到CalendarWindow窗口的右上側(cè)以,下是該類的有關(guān)說(shuō)明:</p><p><b> 1)成員變量</b></p><p> text 是Jtext
135、Area創(chuàng)建的文本區(qū),可在text中編譯多行文本。</p><p> showMessage 是 JtextField 創(chuàng)建的文本條,用來(lái)顯示和日期相關(guān)的數(shù)據(jù)。</p><p> menu是 JpopupMenu 創(chuàng)建的彈出式菜單。</p><p> itemCopy、itemCut、itemPaste、itemClear 是JmenuItem 創(chuàng)建的菜單項(xiàng),
136、名字依次是“復(fù)制”, “剪切”, “黏貼”, “清空”。</p><p><b> 2)方法</b></p><p> NotePad()構(gòu)造方法,用來(lái)創(chuàng)建notePad對(duì)象。</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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- java課程設(shè)計(jì)日歷記事本
- java課程設(shè)計(jì)--日歷記事本
- 日歷記事本-java課程設(shè)計(jì)
- 日歷記事本java課程設(shè)計(jì)
- 日歷記事本java課程設(shè)計(jì)論文
- 基于java的日歷記事本
- java記事本程序課程設(shè)計(jì)報(bào)告
- 日歷記事本java程序設(shè)計(jì)資料
- java課程設(shè)計(jì)--- 記事本程序設(shè)計(jì)
- 基于java的記事本程序課程設(shè)計(jì)
- java課程設(shè)計(jì)記事本(含代碼)1
- java課程設(shè)計(jì)報(bào)告--實(shí)現(xiàn)記事本功能
- 基于java的記事本程序課程設(shè)計(jì)
- java課程設(shè)計(jì)---設(shè)計(jì)一個(gè)記事本
- java語(yǔ)言課程設(shè)計(jì)---記事本程序設(shè)計(jì)
- java記事本課程設(shè)計(jì)
- 日歷記事本.txt
- java課程設(shè)計(jì)--簡(jiǎn)單記事本程序的設(shè)計(jì)
- 日歷記事本.txt
- java記事本課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論