記事本-java程序設(shè)計方案報告_第1頁
記事本-java程序設(shè)計方案報告_第2頁
記事本-java程序設(shè)計方案報告_第3頁
記事本-java程序設(shè)計方案報告_第4頁
記事本-java程序設(shè)計方案報告_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、20122013學(xué)年度第1學(xué)期 Java程序設(shè)計課程 報告 項目:日歷記事本 專業(yè):計算機科學(xué)與技術(shù) 學(xué)號: 10570235 姓名: 班級:計算機2班 分數(shù): 項目說明 角色 姓名 學(xué)號 任務(wù)分配 小組評定 組長 王思琪 10570226 強制練習(xí)工具 組員 常兆華 10570235 日歷記事本 隋欣 10570219 日歷記事本 楊海鈺 10570232 小游戲 關(guān)樂 10570231 小游戲 王冕卿 10570223 Atm取款機系統(tǒng) 13 第一部分、項目整體概述 第二部分、我的任務(wù) 5頁 第三部分、代碼和詳細注釋 6頁 第四部分、心得體會 14頁 第一部分、項目整體概述 日歷記事本帶有

2、日程提醒功能的日歷。 2. 顯示信息: 用戶可以看到這個月的信息,包括年份、日期等。 點擊翻頁按鈕可以查詢前一個月的日期,也可以向后翻頁查詢下一個月的日期。同 樣,可以根據(jù)年份查詢不同年份的日期。 日期的顯示有一些優(yōu)化, 用戶不僅可以查詢到本月份的信息,還可以根據(jù)上個月與 下個月的日期填充來方便查詢?nèi)掌诤托瞧凇?3. 定時提醒: 用戶可以針對某一天來添加、刪除和編輯這一天的日程提醒信息 當系統(tǒng)時間和提醒時間相吻合時,給出具有提示信息的對話框。 4. 查詢信息:用戶可以查詢到某個月的所有的提示信息。 日歷記事本共有 4個java源文件。 Cale ndarPad.java 該類含有main方法,

3、程 該java文件生成的類負責創(chuàng)建本日歷記事本程序主窗口。 序從該類開始執(zhí)行。 Year.java 該文件負責創(chuàng)建管理年份的對象。 Mon th.java 該文件負責創(chuàng)建管理月份的類對象。 NotePad.java 該文件負責創(chuàng)建記事本。 截圖: 初始界面 可輸入年份查看相應(yīng)的日歷與記事本 第二部分、我的任務(wù) 具體任務(wù): 資料查找,匯總及需求分析,負責日歷的編寫,和板塊的 布局輸出等。 編寫大致思路: 我主要負責這個項目中日歷的編寫和輸出顯示的一部分。 經(jīng)過調(diào)查自己電腦中的日歷記事本和大家紙質(zhì)的日歷記事本,我知道若想完 整地顯示一個月的信息至少需要一個首先需要一個7*7的網(wǎng)格,要用到 Grid

4、Layout網(wǎng)格設(shè)置語言。其中每一列的頂層可以稱它為title “標題”,也就 是顯示“星期幾”,表頭顯示這個月所在的年份與月份。隨后對日期進行編號, 判斷閏平年、大小月等必要的程序。為了能使用戶查找到前一年、下一年,上一 月、下一月的內(nèi)容,還需要設(shè)置按鈕,讓成員變量實現(xiàn)其更改。 總體規(guī)劃: 1.成員變量 主類 CanlendarPad 成員變量描述 變量類型 名稱 年、月、日 int year,m on th,day 保存日志的散列表 Han shtable han shtable 存放散列表的文件 File file 顯示日期 JtextFile showDay 日歷對象 Cale nda

5、r P日歷 記事本對象 NotePad no tepad 月 Mon th :負責改變月 年 Year 負責改變年 2方法 名稱 功能 備注 Cale ndarPad 創(chuàng)建窗口主程序 構(gòu)造方法 設(shè)置日歷牌 設(shè)置日立的年份、月份 排列號碼 排列月份中的號碼 mousePressed 處理MouseEvent事件 接口方法 mai n 程序開始運行 第三部分、源代碼及詳細注釋: CalendarPad importjava.util.Cale ndar; /寫的Calendar類里面導(dǎo)入這個包下的所有類庫 public classCale ndarPadexte nds JFrame implem

6、e nts MouseListe ner 定義CalendarPad類繼承JFrame父類的屬性 MouseListener鼠標監(jiān)聽 int year , month , day ; / 定義年月曰 Hashtable hashtable ;/用來保存日志的散列哈希表 File file ;/ 存在哈希表中的文件 JTextFieldshowDay ;/每天是7X7的一個小格子單元 JLabel title ;/用來創(chuàng)建日歷牌中的表格屬性“星期幾” Calendar日歷;/定義日歷”方法是 calendar int 星期幾;/整形定義“星期幾”方法 NotePad notepad =null

7、;/日記本對象,初值為空 Mon th負責改變月;/定義“負責改變月”方法 負責改變年;定義“負責改變年”方法 星期=星期日,“星期一,“星期二,星期三,“星期四,“星期五,“星期 leftPanel, rightPanel ; /界面設(shè)計,左邊是日歷,右面為記事本 Cale ndarPad( int year, Year Stri ng 六; JPanel public 義年月日 getC on te ntPa ne().setBackgrou nd( 個容器,設(shè)置顏色值為(255 , ,228,225 setBackgrou nd( int mon th,int day) / 在 Cale

8、 ndarPad 類中定 new Color(255, 250, 250); new Color(255, 228, 225);/ 初始化一 ) /顏色設(shè)置 setFont(new Font(微軟雅黑 “,F(xiàn)ont. BOLD, 12);/ 字體設(shè)置 setForegrou nd(new Color(70, 130, 180); setTitle(); leftPanel=new JPanel();/傳入一個布局對象作為參數(shù)來創(chuàng)建左邊的面板 new JPa nel(); new JPa nel(); new GridLayout(7,7); /設(shè)置窗口,為7*7的網(wǎng)格, JPanel left

9、Ce nter= JPanel leftNorth= leftCe nter.setLayout( 參數(shù)說明(行數(shù),列數(shù)) rightPanel =new JPanel(); / 設(shè)置右側(cè)面板 this . year =year; this . mon th =mo nth; this . day =day; 負責改變年=new Year( this ); 負責改變年.setFont(new Font(微軟雅黑“,F(xiàn)ont. BOLD, 12);/設(shè)置字體 負責改變年.setForeground( new Color(65, 105, 225);/ 設(shè)置前景色 負責改變年.setYear(ye

10、ar);/調(diào)用方法 負責改變月=new Month( this ); 負責改變月.setFont(new Font(微軟雅黑“,F(xiàn)ont. BOLD, 12);/設(shè)置字體 負責改變月.setForeground( new Color(65, 105, 225);/ 設(shè)置前景色 負責改變月.setM on th(m on th);/調(diào)用方法 title =new JLabel7; /星期幾”標題,有 7 個 showDay =new JTextField42;II 顯示日期的文件有 42個(對應(yīng)42個網(wǎng)格) for ( int j=0;j7;j+)II標題的寫入,周日到周一 title j= n

11、ew JLabel(); title j.setText(星期j); title j.setBorder(BorderFactory. leftCe nter.add(title j); title0.setForegrou nd(Color. title6.setForegrou nd(Color. for ( int i=0;i42;i+)II showDay i= new JTextField(); showDay i.addMouseListener( createRaisedBevelBorder(); II 創(chuàng)建邊框 red ); II設(shè)置周日為紅色 blue ); II設(shè)置周六為

12、藍色 日期寫入 this ); showDay i.setEditable( false leftCe nter.add( showDay i); ); 日歷=Calendar.getlnstanee(); II年份月份的查詢 Box box=Box.createHoriz on talBox(); box.add(負責改變年); box.add(負責改變月); leftNorth.add(box); leftPa nel.setLayout(new BorderLayout(); leftPanel .add(leftNorth,BorderLayout.NORTH); II 上方的邊界 l

13、eftPanel.add(leftCenter,BorderLayout.CENTER); II 中間 Label label =new Label(請在年份輸入框輸入所查年份,按回車確定。負數(shù)為公 元前); label.setBackground(UIManager.getColor ( ScrollBar.foreground); II 具 體設(shè)置 label.setFont(new Font(黑體 “ ,Font. BOLD, 13); label.setForegrou nd(new Color(204, 0, 0); leftPa nel.add(label, BorderLayou

14、t.SOUTH) ; II 下方的邊界 leftPa nel.validate(); Container con=getC onten tPa ne(); JSplitPa ne split=new JSplitPa ne(JSplitPa ne.HORIZONTAL_SPLIT , leftPanel , rightPanel ); CENTER); con. add(split,BorderLayout. con. validate。; hashtable =new Hashtable(); / 初始化哈希表 file =new File( 日歷記事本.txt ); /初始化文件 if (

15、! file.exists。) new FileOutputStream(file ); new ObjectOutputStream(out); hashtable ); try FileOutputStream out= ObjectOutputStream objectOut= objectOut.writeObject( objectOut.close(); out.close(); catch (IOException e) /捕獲輸入輸岀異常 notepad =new NotePad( this );/ 調(diào)用 notepad 的數(shù)據(jù) rightPa nel.add( no tepa

16、d ); 設(shè)置日歷牌(year,month); addWi ndowListe ner(new Win dowAdapter() public void win dowClos in g(Wi ndowEve nt e) System.exit (0); ); setVisible(true ); setBou nds(100,50,612,320); validate(); public void 設(shè)置日歷牌(int year, int mon th) 日歷.set(year,month-1,1);/ Calendar是 JAVA 默認的類,set (年,月,日) 格式,月份是從0開始計為1

17、月,以此類推。故設(shè)置月份參數(shù)為mo nth-1 星期幾=日歷.get(Calendar.DAY_OF_WEEK)-1; /規(guī)定格式,得到此日為星期幾 if (month=1|month=3|month=5|month=7|month=8|month=10|month =12) /判斷大小月 排列號碼(星期幾,31); else if (month=4|month=6|month=9|month=11) 排列號碼(星期幾,30); else if (month=2) /判斷閏年,平年 if (year%4=0 else 排列號碼(星期幾,28); public void排列號碼(int 星期幾,

18、int 月天數(shù)) for (int i=星期幾,n=1;i= 0;i-) showDay i.setForeground(Color. date -; int flag = 1;/將下個月部分日期放入單元格 for ( int i= 星期幾 + 月天數(shù);i42;i+) showDay i.setForeground(Color.gray ); showDay i.setText(String.valueOf (flag); flag +; public int getYear() return year ; public void setYear( int y) year =y; notepa

19、d.setYear( year ); public int getM on th() returnmon th ; public voidsetM on th(int m) mon th =m; notepad .setMonth(month ); public int getDay() return day ; public void setDay( int d) day =d; notepad .setDay( day ); public Hashtable getHashtable() retur n hashtable ; public File getFile() return fi

20、le ; public void mousePressed(MouseEve nt e) JTextField source=(JTextField)e.getSource(); try day =ln teger. parse Int (source.getText(); notepad .setDay( day ); notepad .設(shè)置信息條 (year , month , day ); notepad .設(shè)置文本區(qū)(null ); notepad .獲取日志內(nèi)容 (year , month , day ); catch (Excepti on ee) public voidmouse

21、Clicked(MouseEve nt e) !( SIXV-X inoAeixoa)odns (印口pedJepue|eo)jeeA ojiqnd :印口 pejJepueieo :曲 1曲血 uowngr linu=eexMoqs piejdxeir 屮 uoiu ;ui jeeA ;ui eueisiquoipv s;ueiue|diui xog spuexe 人 ssep siqnd lueAei/veeAef ;jodiui !4/veeAef ;jodiui 6uiMSxeAef ;jodiui :dV3A :(H丄N OI/l_dO_AVa 1+g 丄 NOIAI KdVSA !

22、() eoue;su|;e6 HPllT人)mpuo|EO Meu jepue|eo);e6jepue|eo=p ;ui jepue|eo);e6jepue|eo=iu ;ui jepue|eo);e6jepue|eo=A ;ui jepue|eo=jepue|eoepueieg (s6jb 6uu;s)u!eiu piOA 眄s !iqnd r (e lueAes no |/|)pe;ix3es noiu P!OA i !iqnd (e lueAes no |/|)peje;uses noiu P!OA !iqnd (e lueAes no |/|)pesee|eyes noiu P!OA

23、!iqnd showYear =new JTextField(4); showYear .setBackgrou nd(new Color(230, 230, 250); showYear .setForegrou nd(new Color(255, 20, 147); showYear .setF ont( new Font( TimesRo mn ,Fo nt.BOLD,14); this .日歷=日歷; year =日歷.getYear(); 明年=new JButt on( 下年); 明年.setForeground( new Color(0, 139, 139); 明年.setFon

24、t(new Font(微軟雅黑 “,F(xiàn)ont. BOLD, 13); 去年=new JButt on( 上年); 去年.setFont(new Font(微軟雅黑 “,F(xiàn)ont. BOLD, 13); 去年.setForeground( new Color(0, 139, 139); add(去年); add(showYear ); add( 明年); showYear .addActi on Liste ner(this ); 去年.addActionListener(this ); 明年.addActionListener(this ); publicvoid setYear(int year) this . year =year; showYear .setText( +year); public int getYear() return year ; public void acti on Performed(Acti on Eve nt e) if (e.get

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論