版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- java課程設(shè)計日歷記事本
- java課程設(shè)計--日歷記事本
- 日歷記事本-java課程設(shè)計
- 日歷記事本java課程設(shè)計
- 日歷記事本java課程設(shè)計論文
- 基于java的日歷記事本
- java記事本程序課程設(shè)計報告
- 日歷記事本java程序設(shè)計資料
- java課程設(shè)計--- 記事本程序設(shè)計
- 基于java的記事本程序課程設(shè)計
- java課程設(shè)計記事本(含代碼)1
- java課程設(shè)計報告--實(shí)現(xiàn)記事本功能
- 基于java的記事本程序課程設(shè)計
- java課程設(shè)計---設(shè)計一個記事本
- java語言課程設(shè)計---記事本程序設(shè)計
- java記事本課程設(shè)計
- 日歷記事本.txt
- java課程設(shè)計--簡單記事本程序的設(shè)計
- 日歷記事本.txt
- java記事本課程設(shè)計
評論
0/150
提交評論