java課程設(shè)計(jì)(日記本)_第1頁
java課程設(shè)計(jì)(日記本)_第2頁
java課程設(shè)計(jì)(日記本)_第3頁
java課程設(shè)計(jì)(日記本)_第4頁
java課程設(shè)計(jì)(日記本)_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、需求分析日記本是很平常的東西,很多人都有記日記的習(xí)慣,有人記賬,有人記事、有人記下心情。隨著計(jì)算機(jī)技術(shù)的發(fā)展,很多家庭都買了電腦,開始上網(wǎng),開始使用電腦來辦公、打字等。所寫現(xiàn)在也有很多的人在使用電腦寫小說,寫博客等,受此啟發(fā)我就萌生了編寫一個(gè)日記本,用電腦來寫日記的想法。很多事我們不想忘記,于是寫進(jìn)日記本里,多年后翻出來再看看,很是愜意。大多數(shù)人都使用的是紙質(zhì)的日記本,這中日記很難保存,容易丟失,也容易遭到水浸等物理破壞,這樣我們的日記就丟了。同紙質(zhì)的日記本相比較,用軟件日記本不僅環(huán)保,而且安全方便,不怕被別人偷看。軟件日記本可以很方便的攜帶只要存在電腦硬盤或者u盤中就可以了。1.1用戶分析這

2、個(gè)軟件面向的用戶是擁有個(gè)人電腦,而其具有寫日記的習(xí)慣的人。用戶使用的軟件必須簡單容易使用,在此基礎(chǔ)上盡可能多的提供人性化功能,豐富軟件的內(nèi)涵。同時(shí)軟件必須盡量保證不會(huì)因用戶的不當(dāng)操作而使用戶受到嚴(yán)重的經(jīng)濟(jì)、財(cái)產(chǎn)、精神損失。軟件必須具有很強(qiáng)的可靠性,不會(huì)無故終止運(yùn)行、死機(jī)、退出等。用戶要求具備以下基本功能:a編輯日記:包括改變字體大小、改變字體顏色等。b管理日記:包括保存及刪除日記、按日期分組日記等。1.1.2除以上功能外,可另曾特色功能:a音樂播放的功能。b編輯背景變換的功能。c身份驗(yàn)證的功能。d日記文件加密存儲(chǔ)的功能。1.2軟件界面與接口需求界面需求界面的原則要求:方便、簡潔、美觀、一致等。

3、整個(gè)界面要保持友好、簡易的風(fēng)格。a輸入設(shè)備:鍵盤、鼠標(biāo)。b輸出設(shè)備:顯示器。c顯示風(fēng)格:應(yīng)用程序窗口界面。1.2.2接口需求軟件功能比較簡單,暫時(shí)不需要接口方面的需求。1.3目標(biāo)軟件其他需求運(yùn)行環(huán)境需求:要求安裝JavaDevelopmentKit(JDK)vl.5或以上版本環(huán)境。進(jìn)度要求:2009年6月底必須完成開發(fā),并通過測試。概要設(shè)計(jì)本課程設(shè)計(jì)是一個(gè)實(shí)用的日記本程序,主要實(shí)現(xiàn)日記撰寫、按月份、日期分類日記、字體設(shè)置、身份認(rèn)證、音樂播放、背景隨機(jī)變化等。一個(gè)普通的日記本無需使用數(shù)據(jù)庫,如果要使用數(shù)據(jù)庫則沒有適合的數(shù)據(jù)庫可以使用,桌面數(shù)據(jù)庫太小不能滿足需求,而其他大型數(shù)據(jù)庫則又昂貴而不合算,

4、所寫我要開發(fā)的日記將以文本文件(windows下的.txt文件格式)來存儲(chǔ),這樣做的好處是顯而易見的。21登陸驗(yàn)證日記是個(gè)人的隱私,通常日記的擁有者不希望他人看到自己所寫的日記,為了實(shí)現(xiàn)基本的保密,程序進(jìn)行了用戶身份認(rèn)證,來確認(rèn)是否有權(quán)使用。認(rèn)證流程如下:圖2-l身份驗(yàn)證功能流程2.2日記本各部分功能日記本的基本功能就是撰寫日記,對寫好的日記要能夠進(jìn)行保存、修改、刪除等操作。這些都是一個(gè)日記本所具有的最基本的功能,除此之外本日記本還增加了其他功能。具體模塊功能有:a編輯日記:包括改變字體大小、改變字體顏色等。b管理日記:包括保存及刪除日記、按日期分組日記等。c音樂播放的功能。d編輯背景變換的功

5、能。e身份驗(yàn)證的功能。f日記文件加密存儲(chǔ)的功能。具體功能層出圖如下所示:詳細(xì)設(shè)計(jì)下面是程序的全部代碼與詳細(xì)注釋。、程序文件名稱:Diary.java功能:日歷本、packagediary;importjavax.swing.*;importjavax.swing.tree.*;importjava.awt.*;importjava.awt.event.*;importjavax.swing.event.*;importjava.io.*;importsun.audio.*;importjava.util.*;/日記本類classRememberextendsJFrameimplementsTr

6、eeSelectionListener,ActionListenerJTreetree=null;inti=0,r=255,g=255,b=255;JTextAreatext=newJTextArea(,20,30);DefaultMutableTreeNoderoot;DefaultMutableTreeNodemonth=newDefaultMutableTreeNode13;/對象數(shù)組JButtonb_save=newJButton(保存),b_del=newJButton(刪除),b_fontCommen=newJButton(普通),b_fontBig=newJButton(大字),

7、b_fontRed=newJButton(紅色),b_fontBlue=newJButton(藍(lán)色),b_music_on=newJButton(音樂ON/OFF),b_music_n=newJButton(上首),b_music_p=newJButton(下首),b_bg=newJButton(背景);StringDiaryRoot=diaries;intmusic_on=0,m_now=0;Stringmusics=Alone.wav,Dreaming.wav,dyinginthesun.wav,EndCredits.wav,lolita.wav,Numb.wav,ThePary.wav,

8、小茉莉.wav;InputStreamis=null;/構(gòu)造方法,完成界面及樹結(jié)點(diǎn)初始化,音樂文件列表初始化Remember()Containercon=getContentPane();DefaultMutableTreeNoderoot=newDefaultMutableTreeNode(日記本);/設(shè)置以月份為節(jié)點(diǎn)的樹,不考慮閏年的影響。for(i=1;i=12;i+)monthi=newDefaultMutableTreeNode(+i+月);root.add(monthi);/設(shè)置不同月份的節(jié)點(diǎn)for(i=1;i=12;i+)/處理有31天的月份if(i=1|i=3|i=5|i=7|

9、i=8|i=10|i=12)for(intj=1;j=31;j+)Strings1=monthi.toString();Strings2=j+日.txt;Filefile=newFile(DiaryRoot+s1+s2);/如果這一天寫了日記則相應(yīng)節(jié)點(diǎn)后面添加一個(gè)“*”來標(biāo)if(file.exists()=true)monthi.add(newDefaultMutableTreeNode(j+日*);elsemonthi.add(newDefaultMutableTreeNode(j+日);/處理有30天的月份elseif(i=4|i=6|i=9|i=11)for(intj=1;j=30;j+

10、)Strings1=monthi.toString();Strings2=j+日.txt;Filefile=newFile(DiaryRoot+s1+s2);/如果這一天寫了日記則相應(yīng)節(jié)點(diǎn)后面添加一個(gè)“*”來標(biāo)志if(file.exists()=true)monthi.add(newDefaultMutableTreeNode(j+日*);elsemonthi.add(newDefaultMutableTreeNode(j+日);/處理有28天的月份elsefor(intj=1;j=28;j+)Strings1=monthi.toString();Strings2=j+日.txt;Filefi

11、le=newFile(DiaryRoot+s1+s2);/如果這一天寫了日記則相應(yīng)節(jié)點(diǎn)后面添加一個(gè)“*”來標(biāo)志if(file.exists()=true)monthi.add(newDefaultMutableTreeNode(j+日*);elsemonthi.add(newDefaultMutableTreeNode(j+日);/設(shè)置監(jiān)聽b_save.addActionListener(this);b_del.addActionListener(this);b_music_on.addActionListener(this);b_music_n.addActionListener(this)

12、;b_music_p.addActionListener(this);b_fontRed.addActionListener(this);b_fontCommen.addActionListener(this);b_fontBig.addActionListener(this);b_fontBlue.addActionListener(this);b_bg.addActionListener(this);/創(chuàng)建樹及其面板tree=newJTree(root);JPanelp=newJPanel();/設(shè)置邊界布局p.setLayout(newBorderLayout();JScrollPane

13、scrollpane_1=newJScrollPane(text);/帶滾動(dòng)條的面板放置到中間,可以占據(jù)最大空間位置p.add(scrollpane_1,BorderLayout.CENTER);/設(shè)置面板,放置保存和刪除按鈕等按鈕,面板放在上部JPanelp_1=newJPanel();p_1.add(b_save);p_1.add(b_del);p_1.add(b_fontCommen);p_1.add(b_fontBig);p_1.add(b_fontRed);p_1.add(b_fontBlue);p_1.add(b_music_on);p_1.add(b_music_n);p_1.a

14、dd(b_music_p);p_1.add(b_bg);/設(shè)置布局p.add(p_1,BorderLayout.NORTH);JScrollPanescrollpane_2=newJScrollPane(tree);JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,scrollpane_2,p);tree.addTreeSelectionListener(this);con.add(splitpane);/設(shè)置窗體適配器,關(guān)閉功能addWindowListener(newWindowAdapter()publicvoidwindowClosing(Wind

15、owEvente)System.exit(0););setVisible(true);setBounds(100,150,500,600);/處理樹節(jié)點(diǎn)事件publicvoidvalueChanged(TreeSelectionEvente)/清空文本區(qū)中的內(nèi)容text.setText();if(e.getSource()=tree)/定義被選中的節(jié)點(diǎn)DefaultMutableTreeNodenode=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();/如果是葉節(jié)點(diǎn),則可以對文件進(jìn)行操作if(node.isLeaf()/日

16、記以“-月-日txt”的形式存儲(chǔ),所以要消除“*”號(hào)的影響Stringstr=node.toString();str=str.substring(0,str.length()-1);for(inti=0;i05時(shí)做減法負(fù)責(zé)做加法,doubleop=Math.random();doublec=Math.random()*10;if(op0.5)/使r,g,b三個(gè)標(biāo)志RGB的變量減小一個(gè)隨機(jī)的大小小在0-50之間的數(shù)if(c4&c7)b-=Math.random()*50;if(op=0.5)/使r,g,b三個(gè)標(biāo)志RGB的變量增加一個(gè)隨機(jī)的大小小在0-50之間的數(shù)if(c4&c7)b-=Math.

17、random()*50;text.setBackground(newColor(r,g,b);/刪除文件voiddel()/調(diào)用外部命令執(zhí)行批處理程序tryRuntimece=Runtime.getRuntime();ce.exec(gxy.bat);catch(IOExceptione1)/登陸窗口類classLoginWindowextendsJDialogimplementsActionListenerJPanelp1=newJPanel();/定義并建立面板JPanelp2=newJPanel();JPanelp3=newJPanel();JPanelp4=newJPanel();JP

18、anelp5=newJPanel();JTextFieldtxtUserName=newJTextField(15);/用戶名文本框JPasswordFieldtxtPwd=newJPasswordField(15);/密碼框JButtonok=newJButton(確定);JButtoncancel=newJButton(取消);publicLoginWindow()setModal(true);/設(shè)置模態(tài)setBackground(ColorLIGHT_GRAY);/設(shè)置背景色ContainercontentPane=thisgetContentPane();/取出內(nèi)容面板contentP

19、anesetLayout(newGridLayout(5,1);/設(shè)置布局為5行1列p2add(newJLabel(用戶名:);p2.add(txtUserName);/將組件添加到中間容器p3add(newJLabel(密碼:);p3.add(txtPwd);p4add(ok);p4add(cancel);okaddActionListener(this);canceladdActionListener(this);txtUserNameaddActionListener(this);txtPwd.addActionListener(this);contentPane.add(p1);/將面

20、板添加到內(nèi)容面板contentPane.add(p2);contentPane.add(p3);contentPane.add(p4);contentPane.add(p5);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);/設(shè)置自動(dòng)關(guān)閉窗口setSize(300,220);/Dimension類封裝單個(gè)對象中組件的寬度和高度Dimensionscreen=Toolkit.getDefaultToolkit().getScreenSize();setLocation(screen.width-300)/2,(screen.height-220

21、)/2);setTitle(登錄窗口);setResizable(false);/設(shè)置窗口大小固定setVisible(true);/添加事件監(jiān)聽器publicvoidactionPerformed(ActionEvente)/處理”確定”按鈕事件if(e.getSource()=ok|e.getSource()=txtPwd)if(txtUserName.getText().trim().equals(shenbaise)&txtPwd.getText()trim()equals(123456)/如果用戶名為shenbaise密碼為123456則正確dispose();/關(guān)閉登錄窗口elseJOptionPaneshowMessageDialog(null,用戶名或密碼錯(cuò)誤!);txtUserNamerequestFocus();/設(shè)置焦點(diǎn)txtUserNamesetSelectionStart(0);/設(shè)置選中文本開始位置txtUserNamesetSelectionEnd(txtUserNamegetText()length();/處理”取消”按鈕事件elseif(e.getSource()=cancel)dispose();System.exit(0);/退

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論