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