版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
華北科技學(xué)院計(jì)算機(jī)系報(bào)告PAGE 第12頁(yè)華北科技學(xué)院計(jì)算機(jī)系軟件報(bào)告課程名稱Java程序設(shè)計(jì)A實(shí)驗(yàn)學(xué)期2010至2011學(xué)年第二學(xué)期學(xué)生所在系部管理系年級(jí)三專業(yè)班級(jí)電子商務(wù)B09-2學(xué)生姓名張莉?qū)W號(hào)任課教師實(shí)驗(yàn)成績(jī)計(jì)算機(jī)系制
《Java程序設(shè)計(jì)A》課程考試報(bào)告開(kāi)課實(shí)驗(yàn)室:軟件開(kāi)發(fā)實(shí)驗(yàn)室年月日實(shí)驗(yàn)題目簡(jiǎn)易記事本軟件一、實(shí)驗(yàn)?zāi)康恼莆彰嫦驅(qū)ο蟪绦蛟O(shè)計(jì)基本要素(封裝、繼承、多態(tài))掌握J(rèn)AVA語(yǔ)言常用類包及其常用方法和JAVA語(yǔ)言基本語(yǔ)法掌握基于AWT的圖形用戶界面設(shè)計(jì)常用標(biāo)準(zhǔn)控件的使用,如標(biāo)簽、按鈕、菜單、文本框、單選按鈕、滾動(dòng)條等。事件處理機(jī)制掌握布局、對(duì)話框的使用掌握發(fā)布JAVA應(yīng)用程序二、設(shè)備與環(huán)境PC兼容機(jī)、Windows操作系統(tǒng)、JAVA集成開(kāi)發(fā)環(huán)境。三、實(shí)驗(yàn)內(nèi)容完成記事本的需求分析。記事本的總體設(shè)計(jì),列出主要的類和類間關(guān)系。列出具體的實(shí)現(xiàn)代碼。寫出程序的實(shí)現(xiàn)細(xì)節(jié),主要得功能界面,實(shí)現(xiàn)說(shuō)明。寫出總結(jié)和評(píng)價(jià)四、實(shí)驗(yàn)結(jié)果及分析1.需求分析本程序是一個(gè)簡(jiǎn)單的記事本程序,其主要結(jié)構(gòu)參照了Windows操作系統(tǒng)的記事本工具。能夠?qū)崿F(xiàn)一些基本功能,主要有:具有編輯界面,能夠?qū)崿F(xiàn)文本的輸入、刪除等基本功能。具有菜單條,包含三個(gè)主菜單:文件、編輯、幫助。各個(gè)主菜單分別擁有其菜單選項(xiàng)。文件主菜單含有新建、打開(kāi)、保存、另存為、退出五個(gè)菜單選項(xiàng);編輯主菜單含有剪切、粘貼、復(fù)制、全選四個(gè)菜單選項(xiàng)。幫助主菜單好友關(guān)于記事本信息的菜單選項(xiàng),主要記錄了記事本文件的基本信息。各個(gè)菜單選項(xiàng)能夠?qū)崿F(xiàn)其對(duì)應(yīng)的功能。實(shí)現(xiàn)剪切、復(fù)制、粘貼、全選即編輯菜單的鼠標(biāo)跳出菜單功能。各功能具有快捷鍵。2.軟件設(shè)計(jì)(1)記事本的主體頁(yè)面設(shè)計(jì)圖:(2)程序設(shè)計(jì)思想①首先設(shè)計(jì)出整個(gè)記事本的主體框架,添加菜單欄(JMenu),添加菜單選項(xiàng)(JMenuItem)。這部分應(yīng)用到了Container、JMenuBar、JMenu、JMenuItem的構(gòu)造方法,實(shí)現(xiàn)對(duì)記事本的基本頁(yè)面設(shè)計(jì)。在頁(yè)面中添加編輯局域,應(yīng)用了JTextArea的構(gòu)造方法。實(shí)現(xiàn)各個(gè)菜單選項(xiàng)的功能。在具體的功能實(shí)現(xiàn)中,為每一個(gè)功能設(shè)計(jì)了一個(gè)類,通過(guò)監(jiān)聽(tīng)調(diào)用類方法實(shí)現(xiàn)所需要實(shí)現(xiàn)的功能。程序中的類以及它們之間的關(guān)系:本程序總共含有9個(gè)類:Notebook()主類:他實(shí)現(xiàn)了記事本的基本框架構(gòu)造,以及對(duì)記事本各個(gè)功能的監(jiān)聽(tīng),并且調(diào)用各個(gè)功能的類方法。在Notebook()中,加入了編輯菜單的彈出菜單功能。在Notebook()主類中,通過(guò)事件監(jiān)聽(tīng)調(diào)用了剪切、復(fù)制、保存等功能的類方法:NewActionListener():實(shí)現(xiàn)“新建”功能的類SaveActionListener():實(shí)現(xiàn)“保存”功能的類OpenActionListener():實(shí)現(xiàn)“打開(kāi)”功能的類ExitActionListener():實(shí)現(xiàn)“退出”功能的類CutActionListener():實(shí)現(xiàn)“剪切”功能的類CopyActionListener():實(shí)現(xiàn)“粘貼”功能的類添加事件監(jiān)聽(tīng)Notebook()初始化界面組件菜單欄文件編輯幫助添加事件監(jiān)聽(tīng)Notebook()初始化界面組件菜單欄文件編輯幫助新建打開(kāi)保存退出剪切復(fù)制粘貼全選關(guān)于另存AbouthActionListener():實(shí)現(xiàn)“關(guān)于”功能的類整個(gè)程序框架:文字輸入?yún)^(qū)文字輸入?yún)^(qū)3.程序代碼主函數(shù):importjava.awt.*;importjava.awt.event.*;importjava.io.*;importjavax.swing.*;publicclassMyNotebook{publicstaticvoidmain(Stringargs[]){newNotebook();}}Notebook()主類:importjava.awt.*;importjava.awt.event.*;importjava.io.*;importjavax.swing.*;publicclassNotebookextendsJFrame{ Containercontainer; JFileChooserfc=newJFileChooser();Filefile=null;JMenuBarmb;JMenufileMenu,editMenu,helpMenu;JMenuItemnewItem,openItem,saveItem,saveasItem,exitItem,cutItem,copyItem,pasteItem,sallItem,aboutItem;JTextAreajta;JPopupMenupopUpMenu; publicNotebook() {//記事本主界面設(shè)計(jì)程序// setTitle("記事本"); container=this.getContentPane(); container.setLayout(newBorderLayout()); jta=newJTextArea(); container.add(jta); setVisible(true); setSize(650,450); mb=newJMenuBar(); setJMenuBar(mb);//文件菜單及其菜單選項(xiàng)的程序設(shè)計(jì)// fileMenu=newJMenu("文件"); newItem=newJMenuItem("新建");//設(shè)置快捷鍵// newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,ActionEvent.CTRL_MASK));//設(shè)置“新建”事件監(jiān)聽(tīng)// newItem.addActionListener(newNewActionListener()); fileMenu.add(newItem); fileMenu.addSeparator(); openItem=newJMenuItem("打開(kāi)"); openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,ActionEvent.CTRL_MASK)); openItem.addActionListener(newOpenActionListener()); fileMenu.add(openItem); fileMenu.addSeparator(); saveItem=newJMenuItem("保存"); saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,ActionEvent.CTRL_MASK)); saveItem.addActionListener(newSaveActionListener()); fileMenu.add(saveItem); fileMenu.addSeparator(); saveasItem=newJMenuItem("另存為"); saveasItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,ActionEvent.CTRL_MASK)); saveasItem.addActionListener(newSaveActionListener()); fileMenu.add(saveasItem); fileMenu.addSeparator(); exitItem=newJMenuItem("退出"); exitItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,ActionEvent.CTRL_MASK)); exitItem.addActionListener(newExitActionListener()); fileMenu.add(exitItem); mb.add(fileMenu); //編輯菜單欄及其菜單選項(xiàng)程序設(shè)計(jì)// editMenu=newJMenu("編輯"); cutItem=newJMenuItem("剪切"); cutItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,ActionEvent.CTRL_MASK)); cutItem.addActionListener(newCutActionListener()); editMenu.add(cutItem); editMenu.addSeparator(); copyItem=newJMenuItem("復(fù)制"); copyItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,ActionEvent.CTRL_MASK)); copyItem.addActionListener(newCopyActionListener()); editMenu.add(copyItem); editMenu.addSeparator(); pasteItem=newJMenuItem("粘貼"); pasteItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,ActionEvent.CTRL_MASK)); pasteItem.addActionListener(newPasteActionListener()); editMenu.add(pasteItem); editMenu.addSeparator(); sallItem=newJMenuItem("全選"); sallItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_M,ActionEvent.CTRL_MASK)); sallItem.addActionListener(newSallActionListener()); editMenu.add(sallItem); mb.add(editMenu); //幫助菜單欄及其菜單選項(xiàng)程序設(shè)計(jì)// helpMenu=newJMenu("幫助"); aboutItem=newJMenuItem("關(guān)于記事本"); aboutItem.addActionListener(newAbouthActionListener()); helpMenu.add(aboutItem); mb.add(helpMenu); //編輯菜單的鼠標(biāo)監(jiān)聽(tīng)及其彈出菜單的功能設(shè)計(jì)// popUpMenu=editMenu.getPopupMenu(); jta.addMouseListener(newMouseAdapter(){publicvoidmouseReleased(MouseEvente){if(e.getButton()==MouseEvent.BUTTON3)popUpMenu.show(editMenu,e.getX(),e.getY());}publicvoidmouseClicked(MouseEvente){if(e.getButton()==MouseEvent.BUTTON1)popUpMenu.setVisible(false);}}); } //“新建”功能的實(shí)現(xiàn)// classNewActionListenerimplementsActionListener{ publicvoidactionPerformed(ActionEvente){ jta.setText(""); file=null; } } //“保存功能的實(shí)現(xiàn)”// classSaveActionListenerimplementsActionListener { publicvoidactionPerformed(ActionEvente){ if(file!=null)fc.setSelectedFile(file); intreturnVal=fc.showSaveDialog(Notebook.this); if(returnVal==JFileChooser.APPROVE_OPTION){ file=fc.getSelectedFile(); saving();} } voidsaving(){ try{ FileWriterWritef=newFileWriter(file); Writef.write(jta.getText()); Writef.close(); } catch(Exceptione){e.printStackTrace();} } }//“打開(kāi)”功能的實(shí)現(xiàn)// classOpenActionListenerimplementsActionListener { publicvoidactionPerformed(ActionEvente){ if(file!=null)fc.setSelectedFile(file);intreturnVal=fc.showOpenDialog(Notebook.this);if(returnVal==JFileChooser.APPROVE_OPTION){file=fc.getSelectedFile();unfold();}}voidunfold(){try{FileReaderReadf=newFileReader(file);intlen=(int)file.length();char[]buffer=newchar[len];Readf.read(buffer,0,len);Readf.close();jta.setText(newString(buffer));}catch(Exceptione){e.printStackTrace();}} }//“退出”功能的實(shí)現(xiàn)// classExitActionListenerimplementsActionListener { publicvoidactionPerformed(ActionEvente){ setVisible(false); dispose(); System.exit(0); } }//“剪切”功能的實(shí)現(xiàn)// classCutActionListenerimplementsActionListener { publicvoidactionPerformed(ActionEvente){ jta.cut(); } }//“復(fù)制”功能的實(shí)現(xiàn)// classCopyActionListenerimplementsActionListener { publicvoidactionPerformed(ActionEvente){ jta.copy(); } }//“粘貼”功能的實(shí)現(xiàn)// classPasteActionListenerimplementsActionListener { publicvoidactionPerformed(ActionEvente){ jta.paste(); } } //“全選”功能的實(shí)現(xiàn)// classSallActionListenerimplementsActionListener { publicvoidactionPerformed(ActionEvente){ jta.setSelectionStart(0); jta.setSelectionEnd(jta.getText().length()); } } //“關(guān)于”功能的實(shí)現(xiàn)// classAbouthActionListenerimplementsActionListener { publicvoidactionPerformed(ActionEvente){ St
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024各類設(shè)備采購(gòu)協(xié)議總覽
- 2024年新公司聘用勞動(dòng)協(xié)議樣式
- 2024年場(chǎng)地調(diào)查委托協(xié)議模板
- 2024屆安徽江南十校高三數(shù)學(xué)試題畢業(yè)班4月質(zhì)量檢查試題
- 2024年勞務(wù)合作及就業(yè)保障協(xié)議
- 化信息技術(shù)硬件采購(gòu)協(xié)議范本
- 2024年智能設(shè)備部署與維護(hù)協(xié)議
- 2024年蔬菜產(chǎn)業(yè)鏈戰(zhàn)略合作協(xié)議
- DB11∕T 1603-2018 睡蓮栽培技術(shù)規(guī)程
- 2024專業(yè)新風(fēng)系統(tǒng)安裝服務(wù)協(xié)議模板
- 2024中國(guó)民航機(jī)場(chǎng)建設(shè)集團(tuán)限公司校園招聘304人高頻考題難、易錯(cuò)點(diǎn)模擬試題(共500題)附帶答案詳解
- 血液透析患者安全管理應(yīng)急預(yù)案及處理課件
- 音樂(lè)治療服務(wù)行業(yè)發(fā)展趨勢(shì)及前景展望分析報(bào)告
- 攤位入股合同范本
- 2024年人教版八年級(jí)地理上冊(cè)全冊(cè)基礎(chǔ)知識(shí)點(diǎn)復(fù)習(xí)提綱
- 續(xù)保贈(zèng)送活動(dòng)方案
- 安全隱患排查檢討反思
- Advanced Operations Research智慧樹(shù)知到答案2024年上海大學(xué)
- 音樂(lè)鑒賞(西安交通大學(xué))智慧樹(shù)知到期末考試答案2024年
- 主題班會(huì)-期中考試動(dòng)員
- MOOC 數(shù)據(jù)挖掘與python實(shí)踐-中央財(cái)經(jīng)大學(xué) 中國(guó)大學(xué)慕課答案
評(píng)論
0/150
提交評(píng)論