版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> JAVA課程設(shè)計報告</p><p> 系 別: 計 算 機(jī) 系 </p><p> 班 級: 計本1119班 </p><p> 姓 名: </p><p> 學(xué) 號: </p><p> 指導(dǎo)教師:
2、 </p><p> 一、課程設(shè)計任務(wù)及要求</p><p><b> ?。?)設(shè)計任務(wù):</b></p><p> 編寫一個Java 萬年歷程序,實(shí)現(xiàn)日期和星期的查詢。</p><p><b> (2)設(shè)計要求:</b></p><p> 1、主界面采用邊
3、界布局,北面是一個設(shè)置年月的控制面板,中間是日歷繪制區(qū);</p><p> 2、單擊“月份”的下拉式菜單,可以顯示當(dāng)前月的上一月/下一月的日歷;</p><p> 3、單擊“年份”的下拉式菜單,可以顯示上一年/下一年的當(dāng)前日歷;二、需求分析</p><p> 對于萬年歷系統(tǒng),其主要功能是:查看當(dāng)日日期(年、月、日)、查看當(dāng)時時間、查看其他年月的月歷。主要使用流
4、程是:查看萬年歷系統(tǒng),查看其他月份或年份日歷,選中其他日期查看,查看當(dāng)日日期。主要功能的用例描述如下:</p><p><b> ?。?)查看萬年歷</b></p><p> 1、進(jìn)入萬年歷系統(tǒng);</p><p> 2、系統(tǒng)獲取當(dāng)日日期并設(shè)置日歷為當(dāng)月,紅框選中當(dāng)日日期;</p><p> ?。?)查詢當(dāng)月其他年份&
5、lt;/p><p> 改變年份的方法是選擇年份。</p><p><b> 下拉菜單選擇年份:</b></p><p> 1、點(diǎn)擊選擇年份的下拉菜單,選擇年份;</p><p> 2、系統(tǒng)獲取已選擇的年份;</p><p> 3、系統(tǒng)設(shè)置為已選年份當(dāng)月的月歷并顯示在界面顯示。</p&g
6、t;<p> (3)查詢當(dāng)年的其他月份</p><p> 改變月份的方法是選擇月份。</p><p><b> 下拉菜單選擇月份:</b></p><p> 1、點(diǎn)擊選擇月份的下拉菜單,選擇年份;</p><p> 2、系統(tǒng)獲取已選擇的月份;</p><p> 3、系統(tǒng)設(shè)
7、置已選月份為當(dāng)年的月歷并在界面顯示。</p><p> (4)選擇其他日期查看</p><p><b> 1、點(diǎn)擊其他日期;</b></p><p> 2、系統(tǒng)對所有日期的label進(jìn)行監(jiān)聽,判斷點(diǎn)擊的那個label;</p><p> 3、返回被點(diǎn)擊的label的數(shù)組下標(biāo);</p><p&g
8、t; 4、對該下標(biāo)的label設(shè)置藍(lán)色邊框,表示選中。</p><p><b> 三、設(shè)計思路</b></p><p> 本課設(shè)界面由邊界布局構(gòu)成,主要有北方部件和中央部件兩部分。</p><p> ?。?)北方部件上有查詢輸入部分和時間顯示部分:</p><p> 1、兩個下拉列表用于選擇的年份和月份,如改變年
9、份后系統(tǒng)用getShowYear()獲得組合框中的中文年份,getCombYear()轉(zhuǎn)換成英文格式,得到用戶選擇的年份,同時用getMonthDays()和getInitWeek()得到界面的設(shè)定,最終,用setDays()設(shè)置出用戶所要求的月歷,改變月份同理;</p><p> 2、四個button按鈕用于實(shí)現(xiàn)年—、年+、月—、月+,如摁了“年+”后,系統(tǒng)用getShowYear()和getCombYear
10、()獲得組合框中的年份,在其年份上加1,將改變的年份顯示在組合框里,計算出該年月日歷的安排,并用setDays()設(shè)置出用戶所要求得月歷,其他按鈕同理;</p><p> 3、一個button按鈕用于實(shí)現(xiàn)對今日日期的查找,當(dāng)用戶摁了“今日”后,系統(tǒng)用getNowYear()和getNowMonth()得到當(dāng)日年月,并調(diào)用setNowDay()將系統(tǒng)組合框內(nèi)年月設(shè)為當(dāng)日年月,顯示當(dāng)月月歷,同時系統(tǒng)用getNowD
11、ay()獲得當(dāng)日日期,用labelDay[i].setBorder(border1)語句將當(dāng)日的日期用藍(lán)色的邊框框住表示選定;</p><p> 4、創(chuàng)建一個標(biāo)簽用于顯示時間,監(jiān)聽系統(tǒng)時間并顯示。</p><p> ?。?)中央部件上添加系統(tǒng)的結(jié)果顯示部分:</p><p> 1、該部分最初顯示為當(dāng)日年月的月歷,改變年月后,獲得需要顯示的月份天數(shù)m和當(dāng)月1號是從
12、labelDay[n]開始后按順序從添加到labelDay[m+n],遇到周末用setForeground(Color.red)設(shè)定字體顯示為紅色;</p><p> 2、對labelDay標(biāo)簽進(jìn)行監(jiān)聽,如果鼠標(biāo)點(diǎn)擊某個label,判斷該標(biāo)簽的的序號,用setBorder()為該label設(shè)置藍(lán)色邊框并用setBordr(null)將上一個邊框清除。</p><p><b>
13、 四、詳細(xì)設(shè)計</b></p><p><b> ?。?)類設(shè)計</b></p><p> 本程序創(chuàng)建了一個MainFrame類,該類包括了改變年月對月歷界面顯示的改變和時間的顯示,主要包括函數(shù)如表1所示:</p><p><b> MainFrame</b></p><p><
14、;b> 表 1</b></p><p><b> 表 1</b></p><p><b> (2)界面設(shè)計</b></p><p> 界面如圖1所示該界面由上北面的輸入選擇部分和中央的結(jié)果顯示部分組成。輸入部分創(chuàng)建兩個下拉列表選擇年月及5個功能按鍵用于實(shí)現(xiàn)日歷的基本操作;結(jié)果顯示部分根據(jù)該月1號所
15、屬星期和該月的天數(shù)設(shè)置出該月月歷界面。</p><p> for(int i=0;i<7;i++) </p><p><b> {</b></p><p> labelWeek[i] = new JLabel();</p><p> labelWeek[i].setHorizontalAlign
16、ment(0);</p><p> if(i==0||i==6)</p><p><b> {</b></p><p> labelWeek[i].setForeground(Color.red); //設(shè)置周末為紅色</p><p> labelWeek[i].setFont(new Font("新
17、宋體",Font.BOLD,18));</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> labelWeek[i].setForeground(Color.BLACK);&
18、lt;/p><p> labelWeek[i].setFont(new Font("新宋體",Font.PLAIN,18));</p><p><b> }</b></p><p> labelWeek[i].setText(stringWeekCn[i]); panel2.add(labelWeek[i]);</
19、p><p><b> }</b></p><p> ————————————加上日期的label—————————————</p><p> for(int i= 0;i<42;i++) </p><p><b> {</b></p><p> labelDa
20、y[i] = new JLabel();</p><p> labelDay[i].setHorizontalAlignment(0); //設(shè)置文本的水平對齊方式</p><p> labelDay[i].setText("");</p><p> panel2.add(labelDay[i]);</p><p>
21、 labelDay[i].addMouseListener(listener); //對label進(jìn)行監(jiān)聽</p><p><b> }</b></p><p> ————————————設(shè)置月歷————————————————</p><p> public void setDays(int monthDays,int initWe
22、ek,int day) </p><p><b> {</b></p><p> setDateNull();</p><p> for(int i=initWeek;i<initWeek+monthDays+1;i++) //initWeek 初始星期</p><p><b> {
23、</b></p><p> labelDay[i].setFont(new Font("黑體",Font.BOLD,18)); </p><p><b> //設(shè)置日期的字體</b></p><p> if((i-initWeek+1)==day) //如果日期為今天</p><p
24、><b> {</b></p><p> for(int j=0;j<42;j++)</p><p> labelDay[j].setBorder(null);</p><p> labelDay[i].setBorder(border1); //選中當(dāng)日日期</p><p><b>
25、}</b></p><p> if((i%7==0)||(i%7==6))</p><p> labelDay[i].setForeground(Color.red);</p><p> else labelDay[i].setForeground(Color.BLACK);</p><p> labelDay[i].se
26、tText(String.valueOf(i-initWeek+1));</p><p><b> }</b></p><p> for(int i=initWeek+monthDays;i<42;i++)</p><p> labelDay[i].setText("");</p><p>
27、;<b> }</b></p><p><b> ?。?)功能實(shí)現(xiàn)</b></p><p> 該系統(tǒng)主要實(shí)現(xiàn)的功能如圖2所示</p><p><b> 圖 2</b></p><p> 1、當(dāng)用戶需要查詢指定年月的日歷時,用戶將選擇框內(nèi)年月改變,系統(tǒng)獲取信息并設(shè)置月歷,
28、具體流程如圖3所示</p><p><b> 圖3</b></p><p> 2、用戶用鼠標(biāo)點(diǎn)擊選擇一個日期后,系統(tǒng)可用藍(lán)色方框框住該日期,表示系統(tǒng)已選擇該日,具體流程如圖5所示</p><p><b> 圖4</b></p><p> 五、運(yùn)行調(diào)試與分析討論</p><
29、p> ?。?)運(yùn)行結(jié)果和分析</p><p> 圖5為系統(tǒng)初始界面,系統(tǒng)自動設(shè)置為當(dāng)日年月的月歷,并且用紅色框住當(dāng)日日期。</p><p><b> 圖5</b></p><p><b> ?。?)改進(jìn)想法</b></p><p> 該萬年歷程序只能顯示陽歷,可在其基礎(chǔ)上加上陰歷的顯示,
30、當(dāng)鼠標(biāo)點(diǎn)擊了某一日的日期時,該日期被框住并且顯示出其陰歷日期;</p><p> 每年一些固定的節(jié)日如“五一”、“十一”可在日歷上用紅色數(shù)字顯示出來;</p><p> 月歷上其他未填日期的空白label可用加上上個月和下個月的部分日期,用灰色表示方便區(qū)。</p><p><b> 六、設(shè)計體會與小結(jié)</b></p><
31、;p> Java 語言是解釋執(zhí)行的高級編程語言,是面向?qū)ο蟮某绦蛟O(shè)計語言,功能強(qiáng)大,它是解釋執(zhí)行的,能跨平臺使用。具有較高的性能和高度的安全性,Java程序的三級代碼安全檢查機(jī)制可以有效的防止非法代碼的入侵,阻止對內(nèi)存的越權(quán)訪問,能夠避免病毒的侵害,成為Internet上最安全的技術(shù)之一。并且支技多線程,可使用戶程序并行執(zhí)行,即有內(nèi)存垃圾自動收集機(jī)制。Java語言是一種“直譯”式語言,即用Java編寫的程序首先被編譯成字節(jié)碼,再
32、通過JVM解釋成機(jī)器碼,字節(jié)碼是Java 專有的一種中間碼,必須通過JVM來解釋才能運(yùn)行。經(jīng)過了一個學(xué)期對《Java程序設(shè)計》的學(xué)習(xí),我們學(xué)習(xí)了理論知識,了解了Java語言程序設(shè)計的思想,這些知識都為我們的下一步學(xué)習(xí)打下了堅(jiān)實(shí)的基礎(chǔ)。</p><p> 經(jīng)過這次課程設(shè)計使我對JAVA圖形用戶界面的有關(guān)知識有了更深入了解,如幾種布局管理器的使用方法,事件的處理機(jī)制,SWING的基本體系結(jié)構(gòu),SWING組件的使用方
33、法,多媒體的實(shí)現(xiàn)手段等知識。完成了簡單的萬年歷功能,本次課程設(shè)計的主要內(nèi)容就是設(shè)計一個可以查詢?nèi)掌诘某绦?,通過選擇下拉列表中的年份以及月份來實(shí)現(xiàn)日期的查詢,及按鍵改變年月通過它可以查詢到日期的一些具體信息,可以查詢所選日期是星期幾,還對星期六與星期日有特殊顏色的標(biāo)記,方便查看。此外,還可以實(shí)現(xiàn)顯示數(shù)字時間的功能,簡單實(shí)用。通過課程設(shè)計,能夠達(dá)到全面、深入理解和掌握所學(xué)內(nèi)容,能夠進(jìn)行簡單的分析和判斷。這次課程設(shè)計,雖說在設(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- java課程設(shè)計報告-萬年歷
- java萬年歷課程設(shè)計報告
- java課程設(shè)計報告---萬年歷
- java萬年歷課程設(shè)計
- java課程設(shè)計--萬年歷
- java課程設(shè)計--萬年歷設(shè)計
- java超級萬年歷課程設(shè)計
- 萬年歷課程設(shè)計報告
- 萬年歷課程設(shè)計報告
- 萬年歷課程設(shè)計--萬年歷電子時鐘
- 萬年歷課程設(shè)計
- 萬年歷課程設(shè)計
- 萬年歷課程設(shè)計
- 萬年歷課程設(shè)計
- 萬年歷課程設(shè)計
- 萬年歷課程設(shè)計
- 萬年歷課程設(shè)計
- 數(shù)字萬年歷課程設(shè)計報告
- 課程設(shè)計報告--電子萬年歷
- 電子萬年歷課程設(shè)計 (2)
評論
0/150
提交評論