記事本-java程序設(shè)計(jì)報(bào)告_第1頁
記事本-java程序設(shè)計(jì)報(bào)告_第2頁
記事本-java程序設(shè)計(jì)報(bào)告_第3頁
記事本-java程序設(shè)計(jì)報(bào)告_第4頁
記事本-java程序設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、20122013學(xué)年度第1學(xué)期Java程序設(shè)計(jì)課程報(bào)告項(xiàng)目:日歷記事本專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)學(xué)號(hào): 10570235姓名:常兆華班級(jí):計(jì)算機(jī)2班分?jǐn)?shù):項(xiàng)目說明角色姓名學(xué)號(hào)任務(wù)分配小組評(píng)定組長王思琪強(qiáng)制練習(xí)工具組員常兆華10570235日歷記事本隋欣日歷記事本楊海桂小游戲關(guān)樂小游戲王冕卿Atm取款機(jī)系統(tǒng)目錄第一部分、項(xiàng)目整體概述 3頁第二部分、我的任務(wù) 5頁第三部分、代碼和詳細(xì)注釋 6頁第四部分、心得體會(huì) 14頁第一部分、項(xiàng)目整體概述日歷記事本帶有日程提醒功能的日歷。2 .顯示信息:用戶可以看到這個(gè)月的信息,包括年份、日期等。點(diǎn)擊翻頁按鈕可以查詢前一個(gè)月的日期,也可以向后翻頁查詢下一個(gè)月的日期。

2、同樣,可以根據(jù)年份查詢不同年份的日期。日期的顯示有一些優(yōu)化, 用戶不僅可以查詢到本月份的信息,還可以根據(jù)上個(gè)月與下個(gè)月的日期填充來方便查詢?nèi)掌诤托瞧凇? .定時(shí)提醒:用戶可以針對(duì)某一天來添加、刪除和編輯這一天的日程提醒信息當(dāng)系統(tǒng)時(shí)間和提醒時(shí)間相吻合時(shí),給出具有提示信息的對(duì)話框。4 .查詢信息:用戶可以查詢到某個(gè)月的所有的提示信息。日歷記事本共有 4個(gè)java源文件。CalendarPad.java該java文件生成的類負(fù)責(zé)創(chuàng)建本日歷記事本程序主窗口。該類含有main方法,程序從該類開始執(zhí)行。Year.java該文件負(fù)責(zé)創(chuàng)建管理年份的對(duì)象。Month.java該文件負(fù)責(zé)創(chuàng)建管理月份的類對(duì)象。No

3、tePad.java該文件負(fù)責(zé)創(chuàng)建記事本。截圖:2012年12月25日 情鍵入文字.,二.星期日星帽一期二星期三星期四星期五星期六25272S29301?345678910111213141516171®19翻2122232425加2729293031112345清在玨附特人更輸人師苴年份,拉回手確定員就為會(huì)元前圖上年i 2012 .族|上月 12 |下月保存日志刪除日志初始界面可輸入年份查看相應(yīng)的日歷與記事本第二部分、我的任務(wù)具體任務(wù):資料查找,匯總及需求分析,負(fù)責(zé)日歷的編寫,和板塊的布局輸出等。編寫大致思路:我主要負(fù)責(zé)這個(gè)項(xiàng)目中日歷的編寫和輸出顯示的一部分。經(jīng)過調(diào)查自己電腦中的日

4、歷記事本和大家紙質(zhì)的日歷記事本,我知道若想完整地顯示一個(gè)月的信息至少需要一個(gè)首先需要一個(gè)7*7的網(wǎng)格,要用到GridLayout網(wǎng)格設(shè)置語言。其中每一列的頂層可以稱它為 title “標(biāo)題”,也就是顯示“星期幾”,表頭顯示這個(gè)月所在的年份與月份。隨后對(duì)日期進(jìn)行編號(hào), 判斷閏平年、大小月等必要的程序。為了能使用戶查找到前一年、下一年,上一 月、下一月的內(nèi)容,還需要設(shè)置按鈕,讓成員變量實(shí)現(xiàn)其更改。總體規(guī)劃:1.成員變量主類 CanlendarPad成員變量描述變量類型名稱年、月、日intyear,month,day保存日志的散列表Hanshtablehanshtable存放散列表的文件Filefi

5、le顯示日期JtextFile口showDay日歷對(duì)象CalendarP日歷記事本對(duì)象NotePadnotepad月Month:負(fù)責(zé)改變?cè)履闥ear負(fù)責(zé)改變年2方法名稱功能備注CalendarPad創(chuàng)建窗口主程序構(gòu)造方法設(shè)置日歷牌設(shè)置日立的年份、月份排列號(hào)碼排列月份中的號(hào)碼mousePressed處理MouseEvent事件接口方法main程序開始運(yùn)行第三部分、源代碼及詳細(xì)注釋:CalendarPadimport java.util.Calendar;/寫的Calendar類里面導(dǎo)入這個(gè)包下的所有類庫public class CalendarPad extends JFrame impleme

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

7、l ;/日記本對(duì)象,初值為空Month負(fù)責(zé)改變?cè)?;定義“負(fù)責(zé)改變?cè)隆狈椒╕ear負(fù)責(zé)改變年;/定義"負(fù)責(zé)改變年”方法String 星期="星期日","星期一","星期二","星期三","星期四","星期五","星期 六"JPanel leftPanel , rightPanel ; /界面設(shè)計(jì),左邊是日歷,右面為記事本 public CalendarPad( int year, int month, int day) / 在CalendarPad

8、 類中定 義年月日getContentPane().setBackground(new Color(255, 228, 225);/ 初始化一個(gè)容器,設(shè)置顏色值為(255 , ,228,225)setBackground( new Color(255, 250, 250);/ 顏色設(shè)置setFont( new Font("微軟雅黑",F(xiàn)ont. BOLD, 12);/ 字體設(shè)置setForeground( new Color(70, 130, 180);setTitle( "");leftPanel =new JPanel(); /傳入一個(gè)布局對(duì)象作為參

9、數(shù)來創(chuàng)建左邊的面板JPanel leftCenter=JPanel leftNorth=new JPanel();new JPanel();leftCenter.setLayout(參數(shù)說明(行數(shù),列數(shù))new GridLayout(7,7);/設(shè)置窗口,為7*7的網(wǎng)格,rightPanel =new JPanel(); / 設(shè)置右側(cè)面板this . year =year;this . month =month;this . day =day;負(fù)責(zé)改變年=new Year( this );負(fù)責(zé)改變年.setFont( new Font("微軟雅黑",F(xiàn)ont. BOLD,

10、12);設(shè)置字體負(fù)責(zé)改變年.setForeground( new Color(65, 105, 225);/ 設(shè)置前景色負(fù)責(zé)改變年.setYear(year);/調(diào)用方法負(fù)責(zé)改變?cè)?new Month( this );負(fù)責(zé)改變?cè)?setFont( new Font("微軟雅黑",F(xiàn)ont. BOLD, 12);設(shè)置字體負(fù)責(zé)改變?cè)?setForeground( new Color(65, 105, 225);/ 設(shè)置前景色負(fù)責(zé)改變?cè)?setMonth(month); /調(diào)用方法title =new JLabel7; / “星期幾”標(biāo)題,有7個(gè)showDay =new JTex

11、tField42;/ 顯示日期的文件有42 個(gè)(對(duì)應(yīng)42 個(gè)網(wǎng)格)for ( int j=0;j<7;j+)/ 標(biāo)題的寫入,周日到周一title j= new JLabel();title j.setText( 星期 j);title j.setBorder(BorderFactory.createRaisedBevelBorder();/ 創(chuàng)建邊框leftCenter.add(titlej);title 0.setForeground(Color.red); / 設(shè)置周日為紅色title 6.setForeground(Color.blue); /設(shè)置周六為藍(lán)色for ( int i=

12、0;i<42;i+)/ 日期寫入showDay i= new JTextField();showDay i.addMouseListener(this );showDay i.setEditable(false );leftCenter.add(showDay i);日歷 =Calendar. getInstance (); / 年份月份的查詢 Box box=Box. createHorizontalBox (); box.add(負(fù)責(zé)改變年);box.add(負(fù)責(zé)改變?cè)?;leftNorth.add(box);leftPanel .setLayout( new BorderLayou

13、t();leftPanel .add(leftNorth,BorderLayout.NORTH); / 上方的邊界leftPanel .add(leftCenter,BorderLayout.CENTER); / 中間Label label =new Label( " 請(qǐng)?jiān)谀攴葺斎肟蜉斎胨槟攴?,按回車確定。負(fù)數(shù)為公元前 " );label.setBackground(UIManager.getColor ( "ScrollBar.foreground"); / 具體設(shè)置label.setFont(new Font( " 黑體 " ,

14、 Font. BOLD, 13);label.setForeground(new Color(204, 0, 0);leftPanel.add(label,BorderLayout.SOUTH) ; / 下方的邊界leftPanel.validate();Container con=getContentPane();JSplitPane split=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT ,leftPanel , rightPanel );CENTER);con.add(split,BorderLayout. con.validate();hash

15、table =new Hashtable(); / 初始化哈希表file =new File( "日歷記事本.txt" ); /初始化文件if (! file.exists。)new FileOutputStream( file );new ObjectOutputStream(out); hashtable );try FileOutputStream out= ObjectOutputStream objectOut= objectOut.writeObject( objectOut.close();out.close();catch (IOException e) /

16、捕獲輸入輸出異常notepad =new NotePad( this );/ 調(diào)用 notepad 的數(shù)據(jù)rightPanel .add( notepad );設(shè)置日歷牌(year,month); addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e) System.exit (0); ); setVisible( true ); setBounds(100,50,612,320); validate(); public void 設(shè)置日歷牌(int year, int month) 日歷.se

17、t(year,month-1,1);/ Calendar是 JAVA 默認(rèn)的類,set (年,月,日)格式,月份是從0開始計(jì)為1月,以此類推。故設(shè)置月份參數(shù)為month-1星期幾=日歷.get(Calendar. DAY_OF_WEEK)-1; /規(guī)定格式,得到此日為星期幾 if (month=1|month=3|month=5|month=7|month=8|month=10|month =12) /判斷大小月排列號(hào)碼(星期幾,31);else if (month=4|month=6|month=9|month=11) 排列號(hào)碼( 星期幾 ,30);else if (month=2) if

18、(year%4=0&&year%100!=0)|(year%400=0)/ 判斷閏年,平年排列號(hào)碼( 星期幾 ,29);else排列號(hào)碼( 星期幾 ,28);public void 排列號(hào)碼( int 星期幾 , int 月天數(shù) )for ( int i= 星期幾 ,n=1;i< 星期幾 +月天數(shù) ;i+) showDay i.setText( "" +n); / 設(shè)置天數(shù),累加 if (n= day )showDay i.setForeground(Color.green );showDay i.setFont( newFont( "Tim

19、esRoman" ,Font. BOLD,20); elseshowDay i.setFont( newFont( "TimesRoman" ,Font. BOLD,12);showDayi.setForeground(Color.blackif (i%7=6)showDayi.setForeground(Color.blueif (i%7=0)showDayi.setForeground(Color.red )n+;/ 程序優(yōu)化:顯示上個(gè)月和下個(gè)月部分日期int lastmonth = month - 1;/ 取得上個(gè)月月份if (lastmonth = 0)l

20、astmonth = 12;int date = 0;if (lastmonth=1|lastmonth=3|lastmonth=5|lastmonth=7|lastmonth= =8|lastmonth=10|lastmonth=12)date = 31;elseif (lastmonth=4|lastmonth=6|lastmonth=9|lastmonth=11)date = 30;else if (lastmonth=2)if ( year %4=0&& year %100!=0)|( year %400=0) date = 29;elsedate = 28;/ 將上個(gè)

21、月部分日期放入單元格gray );""for ( int i= 星期幾 - 1;i >= 0;i-)showDay i.setForeground(Color. showDay i.setText(date + date -;int flag = 1;/ 將下個(gè)月部分日期放入單元格for ( int i= 星期幾 +月天數(shù) ;i<42;i+)showDay i.setForeground(Color.gray );showDay i.setText(String.valueOf (flag);flag +;public int getYear()return y

22、ear ;public void setYear( int y)year =y;notepad .setYear( year );public int getMonth() return month ;public void setMonth( int m) month =m;notepad .setMonth( month );public int getDay() return day ;public void setDay( int d) day =d;notepad .setDay( day );public Hashtable getHashtable() return hashta

23、ble ; public File getFile() return file ;public void mousePressed(MouseEvent e) JTextField source=(JTextField)e.getSource(); try day =Integer. parseInt (source.getText(); notepad .setDay( day );notepad .設(shè)置信息條(year , month , day );notepad .設(shè)置文本區(qū)(null );notepad .獲取日志內(nèi)容 (year , month , day ); catch (Ex

24、ception ee) public void mouseClicked(MouseEvent e) public void mouseReleased(MouseEvent e) public void mouseEntered(MouseEvent e) public void mouseExited(MouseEvent e) public staticvoid main(String args口)Calendar calendar=C y=calendar.get(C m=calendar.get(C d=calenda

25、r.get(Calendar. new CalendarPad(y,m,d);getInstance ();YEAR);MONTH)+1;DAY_OF_MONTH);YEAR :import javax.swing.*;import java.awt.*;import java.awt.event.*;public class Year extends Box implements ActionListener int year ;int month ;JTextField showYear =null ;JButton 明年,去年;CalendarPad 日歷; public Year(Ca

26、lendarPad 日歷)super (BoxLayout. X_AXIS );showYear =new JTextField(4);showYear .setBackground(new Color(230, 230, 250);showYear .setForeground(new Color(255, 20, 147);showYear .setFont( new Font( "TimesRomn" ,Font. BOLD,14);this . 日歷 =日歷 ;year =日歷.getYear();明年=new JButton(" 下年" );明

27、年 .setForeground( new Color(0, 139, 139);明年.setFont(new Font(" 微軟雅黑" , Font.BOLD, 13);去年=new JButton(" 上年" );去年.setFont(new Font(" 微軟雅黑" , Font.BOLD, 13);去年 .setForeground( new Color(0, 139, 139);add(去年);add( showYear );add(明年);showYear .addActionListener(this );去年.addActionListener(this );明年.addActionListener(this ); publicvoid setYear(int year)this . year =year;showYear .setText( "" +year); public int getYea

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論