




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
...wd......wd......wd...華北科技學(xué)院計算機(jī)學(xué)院課程綜合作業(yè)實驗報告課程名稱Java大學(xué)實用教程實驗學(xué)期2012至2013學(xué)年第一學(xué)期學(xué)生所在系部計算機(jī)學(xué)院年級2011專業(yè)班級信管B11-x學(xué)生姓名xxx學(xué)號xxxxxxxxxxx任課教師王養(yǎng)廷實驗成績計算機(jī)學(xué)院制《JAVA程序設(shè)計》課程綜合作業(yè)實驗報告開課實驗室:根基四2012年12月20日實驗題目用java編寫簡單記事本實驗?zāi)康恼莆彰嫦驅(qū)ο蟪绦蛟O(shè)計根本要素〔封裝、繼承、多態(tài)〕掌握J(rèn)AVA語言常用類包及其常用方法和JAVA語言根本語法掌握基于AWT的圖形用戶界面設(shè)計常用標(biāo)準(zhǔn)控件的使用,如標(biāo)簽、按鈕、菜單、文本框、單項選擇按鈕、滾動條等。事件處理機(jī)制掌握布局、對話框的使用掌握發(fā)布JAVA應(yīng)用程序設(shè)備與環(huán)境硬件:多媒體計算機(jī)軟件:Windows2000以上的操作系統(tǒng)、JAVA集成開發(fā)環(huán)境實驗內(nèi)容1.完成記事本的需求分析。2.記事本的總體設(shè)計,列出主要的類和類間關(guān)系。3.列出具體的實現(xiàn)代碼。4.寫出程序的實現(xiàn)細(xì)節(jié),主要得功能界面,實現(xiàn)說明。5.寫出總結(jié)和評價。四、實驗結(jié)果及分析1.實驗分析本程序是一個簡單的記事本程序,其主要構(gòu)造參照了Windows操作系統(tǒng)的記事本工具。能夠?qū)崿F(xiàn)一些根本功能,主要有:具有編輯界面,能夠?qū)崿F(xiàn)文本的輸入、刪除等根本功能。具有菜單條,包含三個主菜單:文件、編輯、幫助。各個主菜單分別擁有其菜單項選擇項。文件主菜單含有新建、翻開、保存、另存為、退出五個菜單項選擇項;編輯主菜單含有剪切、粘貼、復(fù)制、全選四個菜單項選擇項。幫助主菜單好友關(guān)于記事本信息的菜單項選擇項,主要記錄了記事本文件的根本信息。各個菜單項選擇項能夠?qū)崿F(xiàn)其對應(yīng)的功能。實現(xiàn)剪切、復(fù)制、粘貼、全選即編輯菜單的鼠標(biāo)跳出菜單功能。各功能具有快捷鍵。2.程序設(shè)計思想①首先設(shè)計出整個記事本的主體框架,添加菜單欄〔JMenu〕,添加菜單項選擇項〔JMenuItem〕。這局部應(yīng)用到了Container、JMenuBar、JMenu、JMenuItem的構(gòu)造方法,實現(xiàn)對記事本的根本頁面設(shè)計。在頁面中添加編輯局域,應(yīng)用了JTextArea的構(gòu)造方法。實現(xiàn)各個菜單項選擇項的功能。在具體的功能實現(xiàn)中,為每一個功能設(shè)計了一個類,通過監(jiān)聽調(diào)用類方法實現(xiàn)所需要實現(xiàn)的功能。程序中的類以及它們之間的關(guān)系:本程序總共含有9個類:Notebook()主類:他實現(xiàn)了記事本的根本框架構(gòu)造,以及對記事本各個功能的監(jiān)聽,并且調(diào)用各個功能的類方法。在Notebook()中,參加了編輯菜單的彈出菜單功能。在Notebook()主類中,通過事件監(jiān)聽調(diào)用了剪切、復(fù)制、保存等功能的類方法:NewActionListener〔〕:實現(xiàn)“新建〞功能的類SaveActionListener〔〕:實現(xiàn)“保存〞功能的類OpenActionListener〔〕:實現(xiàn)“翻開〞功能的類ExitActionListener〔〕:實現(xiàn)“退出〞功能的類CutActionListener〔〕:實現(xiàn)“剪切〞功能的類CopyActionListener〔〕:實現(xiàn)“粘貼〞功能的類SallActionListener〔〕:實現(xiàn)“全選〞功能的類AbouthActionListener〔〕:實現(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è)計程序// setTitle("記事本"); container=this.getContentPane(); container.setLayout(newBorderLayout()); jta=newJTextArea(); container.add(jta); setVisible(true); setSize(650,450); mb=newJMenuBar(); setJMenuBar(mb);//文件菜單及其菜單項選擇項的程序設(shè)計// 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); //編輯菜單欄及其菜單項選擇項程序設(shè)計// 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);//幫助菜單欄及其菜單項選擇項程序設(shè)計// helpMenu=newJMenu("幫助"); aboutItem=newJMenuItem("關(guān)于記事本"); aboutItem.addActionListener(newAbouthActionListener()); helpMenu.add(aboutItem); mb.add(helpMenu); //編輯菜單的鼠標(biāo)監(jiān)聽及其彈出菜單的功能設(shè)計// 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);}});} //“新建〞功能的實現(xiàn)// classNewActionListenerimplementsActionListener{ publicvoidactionPerformed(ActionEvente){ jta.setText(""); file=null; } } //“保存功能的實現(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();} } }//“翻開〞功能的實現(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();}}}//“退出〞功能的實現(xiàn)// classExitActionListenerimplementsActionListener { publicvoidactionPerformed(ActionEvente){ setVisible(false); dispose(); System.exit(0); } }//“剪切〞功能的實現(xiàn)// classCutActionListenerimplementsActionListener { publicvoidactionPerformed(ActionEvente){ jta.cut(); } }//“復(fù)制〞功能的實現(xiàn)// classCopyActionListenerimplementsActionListener { publicvoidactionPerformed(ActionEvente){ jta.copy(); } }//“粘貼〞功能的實現(xiàn)// classPasteActionListenerimplementsActionListener { publicvoidactionPerformed(ActionEvente){ jta.paste(); } } //“全選〞功能的實現(xiàn)// classSallActionListenerimplementsActionListener { publicvoidactionPerformed(ActionEvente){ jta.setSelectionStart(0); jta.setSelectionEnd(jta.getText().length()); } } //“關(guān)于〞功能的實現(xiàn)// classAbouthActionListenerimplements
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度山林地承包合同模板
- 2025年高性能鈷粉項目合作計劃書
- 2025固定工資工勞動合同格式 固定工資工勞動合同范本
- 2025飲品購銷合同協(xié)議書范本
- 2025年房地產(chǎn)評估師考試試題及答案
- 2025年增壓輸送系統(tǒng)項目建議書
- 毛氈板施工方案
- 法院書記員招聘2023年筆試題庫答案分析
- 【部編版】五年級語文下冊第17課《跳水》精美課件
- 城市規(guī)劃專利技術(shù)實施保證3篇
- 2024-2030年中國街舞培訓(xùn)行業(yè)發(fā)展趨勢及競爭格局分析報告
- 2024年度中國鮮食玉米行業(yè)發(fā)展前景分析簡報
- 《電力建設(shè)工程施工安全管理導(dǎo)則》(NB∕T 10096-2018)
- 裝修拆除安全協(xié)議書范本(2篇)
- 國家自然科學(xué)基金學(xué)科分類目錄及代碼表
- 射頻同軸連接器基礎(chǔ)知識及設(shè)計要點
- 員工食堂節(jié)能降耗措施
- 2024年山東省高考地理試卷真題(含答案逐題解析)
- 中國敏感性皮膚臨床診療指南(2024版)
- DB41T2689-2024水利工程施工圖設(shè)計文件編制規(guī)范
- 人教版小學(xué)五年級數(shù)學(xué)下冊《第七單元 折線統(tǒng)計圖》大單元整體教學(xué)設(shè)計2022課標(biāo)
評論
0/150
提交評論