




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
...wd......wd......wd...華北科技學(xué)院計(jì)算機(jī)學(xué)院課程綜合作業(yè)實(shí)驗(yàn)報(bào)告課程名稱Java大學(xué)實(shí)用教程實(shí)驗(yàn)學(xué)期2012至2013學(xué)年第一學(xué)期學(xué)生所在系部計(jì)算機(jī)學(xué)院年級(jí)2011專業(yè)班級(jí)信管B11-x學(xué)生姓名xxx學(xué)號(hào)xxxxxxxxxxx任課教師王養(yǎng)廷實(shí)驗(yàn)成績(jī)計(jì)算機(jī)學(xué)院制《JAVA程序設(shè)計(jì)》課程綜合作業(yè)實(shí)驗(yàn)報(bào)告開課實(shí)驗(yàn)室:根基四2012年12月20日實(shí)驗(yàn)題目用java編寫簡(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)簽、按鈕、菜單、文本框、單項(xiàng)選擇按鈕、滾動(dòng)條等。事件處理機(jī)制掌握布局、對(duì)話框的使用掌握發(fā)布JAVA應(yīng)用程序設(shè)備與環(huán)境硬件:多媒體計(jì)算機(jī)軟件:Windows2000以上的操作系統(tǒng)、JAVA集成開發(fā)環(huán)境實(shí)驗(yàn)內(nèi)容1.完成記事本的需求分析。2.記事本的總體設(shè)計(jì),列出主要的類和類間關(guān)系。3.列出具體的實(shí)現(xiàn)代碼。4.寫出程序的實(shí)現(xiàn)細(xì)節(jié),主要得功能界面,實(shí)現(xiàn)說(shuō)明。5.寫出總結(jié)和評(píng)價(jià)。四、實(shí)驗(yàn)結(jié)果及分析1.實(shí)驗(yàn)分析本程序是一個(gè)簡(jiǎn)單的記事本程序,其主要構(gòu)造參照了Windows操作系統(tǒng)的記事本工具。能夠?qū)崿F(xiàn)一些根本功能,主要有:具有編輯界面,能夠?qū)崿F(xiàn)文本的輸入、刪除等根本功能。具有菜單條,包含三個(gè)主菜單:文件、編輯、幫助。各個(gè)主菜單分別擁有其菜單項(xiàng)選擇項(xiàng)。文件主菜單含有新建、翻開、保存、另存為、退出五個(gè)菜單項(xiàng)選擇項(xiàng);編輯主菜單含有剪切、粘貼、復(fù)制、全選四個(gè)菜單項(xiàng)選擇項(xiàng)。幫助主菜單好友關(guān)于記事本信息的菜單項(xiàng)選擇項(xiàng),主要記錄了記事本文件的根本信息。各個(gè)菜單項(xiàng)選擇項(xiàng)能夠?qū)崿F(xiàn)其對(duì)應(yīng)的功能。實(shí)現(xiàn)剪切、復(fù)制、粘貼、全選即編輯菜單的鼠標(biāo)跳出菜單功能。各功能具有快捷鍵。2.程序設(shè)計(jì)思想①首先設(shè)計(jì)出整個(gè)記事本的主體框架,添加菜單欄〔JMenu〕,添加菜單項(xiàng)選擇項(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)選擇項(xiàng)的功能。在具體的功能實(shí)現(xiàn)中,為每一個(gè)功能設(shè)計(jì)了一個(gè)類,通過(guò)監(jiān)聽調(diào)用類方法實(shí)現(xiàn)所需要實(shí)現(xiàn)的功能。程序中的類以及它們之間的關(guān)系:本程序總共含有9個(gè)類:Notebook()主類:他實(shí)現(xiàn)了記事本的根本框架構(gòu)造,以及對(duì)記事本各個(gè)功能的監(jiān)聽,并且調(diào)用各個(gè)功能的類方法。在Notebook()中,參加了編輯菜單的彈出菜單功能。在Notebook()主類中,通過(guò)事件監(jiān)聽調(diào)用了剪切、復(fù)制、保存等功能的類方法:NewActionListener〔〕:實(shí)現(xiàn)“新建〞功能的類SaveActionListener〔〕:實(shí)現(xiàn)“保存〞功能的類OpenActionListener〔〕:實(shí)現(xiàn)“翻開〞功能的類ExitActionListener〔〕:實(shí)現(xiàn)“退出〞功能的類CutActionListener〔〕:實(shí)現(xiàn)“剪切〞功能的類CopyActionListener〔〕:實(shí)現(xiàn)“粘貼〞功能的類SallActionListener〔〕:實(shí)現(xiàn)“全選〞功能的類AbouthActionListener〔〕:實(shí)現(xiàn)“關(guān)于〞功能的類添加事件監(jiān)聽Notebook〔〕添加事件監(jiān)聽Notebook〔〕初始化界面組件菜單欄文件編輯幫助新建翻開保存退出剪切復(fù)制粘貼全選關(guān)于另存文字輸入?yún)^(qū)文字輸入?yún)^(qū)4.程序代碼importjava.awt.*;importjava.awt.event.*;importjava.io.*;importjavax.swing.*;publicclassMyNotebook{publicstaticvoidmain(Stringargs[]){newNotebook();}}//Notebook()主類:classNotebookextendsJFrame{ 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)選擇項(xiàng)的程序設(shè)計(jì)// fileMenu=newJMenu("文件"); newItem=newJMenuItem("新建");//設(shè)置快捷鍵// newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,ActionEvent.CTRL_MASK));//設(shè)置“新建〞事件監(jiān)聽// newItem.addActionListener(newNewActionListener()); fileMenu.add(newItem); fileMenu.addSeparator(); openItem=newJMenuItem("翻開"); 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)選擇項(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)選擇項(xiàng)程序設(shè)計(jì)// helpMenu=newJMenu("幫助"); aboutItem=newJMenuItem("關(guān)于記事本"); aboutItem.addActionListener(newAbouthActionListener()); helpMenu.add(aboutItem); mb.add(helpMenu); //編輯菜單的鼠標(biāo)監(jiān)聽及其彈出菜單的功能設(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();} } }//“翻開〞功能的實(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)// classAbouthActionListenerimplements
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 深圳市光明區(qū)智慧城市專項(xiàng)規(guī)劃
- 湖北省宜昌市點(diǎn)軍區(qū)2025年五下數(shù)學(xué)期末質(zhì)量跟蹤監(jiān)視試題含答案
- 東北財(cái)經(jīng)大學(xué)《中國(guó)現(xiàn)當(dāng)代文學(xué)經(jīng)典閱讀》2023-2024學(xué)年第二學(xué)期期末試卷
- 云南省玉溪市華寧二中2024-2025學(xué)年高三下學(xué)期高考模擬考試語(yǔ)文試題含解析
- 蘇州大學(xué)應(yīng)用技術(shù)學(xué)院《跨專業(yè)設(shè)計(jì)選題研究》2023-2024學(xué)年第二學(xué)期期末試卷
- 非稅收入知識(shí)講解
- 浙江長(zhǎng)征職業(yè)技術(shù)學(xué)院《建筑工程定額原理》2023-2024學(xué)年第二學(xué)期期末試卷
- 池州學(xué)院《統(tǒng)計(jì)學(xué)(雙語(yǔ))》2023-2024學(xué)年第二學(xué)期期末試卷
- 高中地理課件中國(guó)的可持續(xù)發(fā)展道路234465234
- 長(zhǎng)城國(guó)際廣告大富豪購(gòu)物廣場(chǎng)整合推廣營(yíng)銷策略
- (新版)浙江省地方執(zhí)法證考試題庫(kù)及答案
- 車輛交通安全培訓(xùn)全面指南
- 糖尿病-運(yùn)動(dòng)課件
- 科技大篷車進(jìn)校園方案
- 【課件】往復(fù)式壓縮機(jī)課件
- 2024-2030年中國(guó)鈮行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略分析報(bào)告
- GB/T 2428-2024成年人頭面部尺寸
- 2024年鍋爐運(yùn)行值班員(高級(jí)工)理論考試題庫(kù)-上(單選、多選題)含答案
- 湖北省武漢市2024屆高中畢業(yè)生四月調(diào)研考試歷史含答案解析
- 2023年江蘇常州中考滿分作文《方寸之間天地大》4
- 某大學(xué)中西醫(yī)臨床(專升本)學(xué)士學(xué)位考試復(fù)習(xí)題
評(píng)論
0/150
提交評(píng)論