版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
第頁JAVA語言課程設計報告題目:設計者:專業(yè)班級:學號:指導教師:目錄TOC\o"1-3"\h\u摘要 1一、系統(tǒng)概述 2二、系統(tǒng)需求分析 22.1需求分析 22.2功能設計 2三、系統(tǒng)總體設計 33.1程序設計思路 33.2程序運行界面 33.4系統(tǒng)數(shù)據(jù)流程圖 43.5程序相關說明 4四、系統(tǒng)詳細設計 64.1.初始化組件 64.2.構(gòu)建菜單欄及其下拉菜單 64.3.“文件”菜單的事件監(jiān)聽 74.4.“編輯”菜單的事件監(jiān)聽 84.5.異常處理 8五、系統(tǒng)調(diào)試分析 10六、總結(jié) 12參考文獻 13附:程序清單 14摘要現(xiàn)在網(wǎng)絡上各種記事本軟件數(shù)不勝數(shù),功能也是應有盡有,有能改變字體的,有能改變顏色的。但是,這些軟件又存在各種各樣的瑕疵或問題:有的文件體積相對于一般文字編輯來說太大;有的功能太繁瑣,是初級使用者一時難以掌握,僅從日常應用方面來說,一個記事本只需一些簡單實用的功能就夠了。本程序設計就是依照這樣一種使用需求設計了一個的簡單的記事本程序。該程序報告里的程序是使用Java編寫的,實現(xiàn)記事本的功能,參考windows中記事本的功能。要求打開文件,讀取文件中的文本信息。顯示、編輯修改文本信息。Java記事本采用的是JavaSE中的GUI和IO基本技術(shù),可以實現(xiàn)文本的簡單操作,如:打開文檔、編輯文檔、保存文檔等。
AbstractNowallkindsofnotepadsoftwareonthenetwork,functionalsoiseverything,canchangethefont,canchangethecolor.However,thesoftwareandallkindsofdefectsorproblems:somefilesizeistoolargerelativetothegeneraltexteditor.Somefunctionistoocomplicated,difficulttograspistheprimaryusers,onlyindailyapplicationways,anotepadjustsomesimpleandpracticalfunctionisenough.Thisprogramisdesignedinaccordancewithsuchademandbydesigningasimplenotepadapplication.TheproceduresinthereportistousewritteninJava,wecanrealizethefunctionofnotepad,referencefunctionofWindowsnotepad.Openthefile,readthetextinthefileinformation.Display,edittextinformation.JavanotepadisaGUIandIOinJavaSEbasictechnique,canrealizethetextsimpleoperations,suchas:openthedocument,editthedocument,savethedocument,etc.
一、系統(tǒng)概述1.1項目背景目前,很多新的技術(shù)領域都涉及到了Java語言,Java語言是面向?qū)ο缶幊蹋⑸婕暗骄W(wǎng)絡、多線程等重要的基礎知識,因此Java語言也是學習面向?qū)ο缶幊毯途W(wǎng)絡編程的首選語言。按照教學培養(yǎng)計劃要求,學生在學習完課本中指定課時的知識后,應安排一定課時的課程設計。其主要目的是使學生深入理解并實踐在本課程中所學的有關java程序設計方面的語言基礎、異常處理、事件處理、小應用程序以及圖形用戶界面設計等。故此“java記事本”應運而生。1.2任務目標Java記事本程序主要是對文字進行編輯處理的軟件。能進行新建、打開、保存等功能。另外還可以根據(jù)用戶的需要復制剪切相應的文字,實現(xiàn)編輯功能。
本課程設計是為了配合Java程序設計課程,通過面向?qū)ο蟪绦蛟O計對自己所學過的的知識加以掌握和運用,使學生深入學習掌握Java語言,熟練運用這個工具而設立的課程。通過課程設計各個項目的綜合訓練,加強學生對JAVA語言的理解,檢驗學生對專業(yè)理論知識理解及掌握的程度,鍛煉學生綜合運用JAVA程序設計處理所學的知識實際分析問題、解決問題的能力,使課堂上的理論在實踐中得到運用,提高學生的綜合素質(zhì),為學生畢業(yè)后的實際工作打好基礎。1.3開發(fā)意義隨著計算機科學日漸成熟,其強大的功能已為人們深刻認識,它已進入人類社會的各個領域并發(fā)揮著越來越重要的作用。當然對文本編輯操作仍然占據(jù)著重要地位,記事本是簡單便捷的文本編輯器,可實現(xiàn)對文本編輯操作的基本功能。二、系統(tǒng)需求分析2.1需求分析現(xiàn)在網(wǎng)絡上各種文檔編輯器數(shù)不勝數(shù),有EmEditor,UEStudio,GridinSoftNotepad,Notepad++,win32pad,SkimEdit,UniRed,xint。功能也是應有盡有,有能改變字體的,有能改變文字顏色的。但是,這些軟件又存在各種各樣的瑕疵或問題:有的文件體積相對于一般文字編輯來說太大;有的功能太繁雜,使初級使用者一時難以掌握。僅從日常應用方面來說,一個文本編輯器只需一些簡單實用的功能就夠了。本程序設計就是依照這樣一種使用需要設計了一個的記事本程序。2.2功能設計本程序要構(gòu)建的記事本程序參照了Windows操作系統(tǒng)的記事本工具,其功能有以下幾個方面:
(1)菜單中有“文件”,“編輯”兩個主菜單。
(2)“文件”有“新建”“打開”“保存”“另存為”“退出”五個子菜單:分別用于新建文件,打開文件,保存文件,另存為文件,退出記事本。
(3)“編輯”中有“全選”“復制”“剪切”“粘貼”四個子菜單:用于全選文字,復制文字,剪切文字,粘貼文字。
三、系統(tǒng)總體設計3.1程序設計思路在本程序中,設計了一個菜單欄和文本內(nèi)容區(qū)。設計過程中用到了JScrollPane,JMenu,JTextPane,JFileChooser等。JMenu用來制作菜單,菜單包括“文件”“編輯”“關于”。JTextPane主要用來輸入文本。為了加入顏色的設置,所以加了一個JColorChooser組件。3.2程序運行界面圖1:程序運行界面
打開新建3.3系統(tǒng)功能結(jié)構(gòu)圖打開新建文件文件保存保存記事本另存為記事本另存為退出退出主界面編輯主界面編輯圖2:系統(tǒng)功能結(jié)構(gòu)圖3.4系統(tǒng)數(shù)據(jù)流程圖文字顯示文字顯示文本文檔文本文檔打開打開打開主界面打開主界面編輯文本文檔編輯文本文檔保存保存退出退出圖3:系統(tǒng)數(shù)據(jù)流程圖3.5程序相關說明整個記事本分為2快:菜單欄和內(nèi)容輸入?yún)^(qū)。本程序中首先定義一個mynotepad類繼承JFrame作為最底層容器。(1).Textcontent為程序文本輸入?yún)^(qū)。(2).Menu為菜單欄。(3).AboutDialog為關于對話框。(4).要想記事本完成需求分析中相應的功能,還必須添加事件監(jiān)聽器。事件監(jiān)聽器不僅要添加在菜單欄和內(nèi)容輸入?yún)^(qū),還需加在容器中。本程序中ActListener實現(xiàn)了ActionListener接口,用來監(jiān)聽并處理所有菜單項和內(nèi)容輸入?yún)^(qū)為事件源的事件。另外,還用來WindowListener來監(jiān)聽處理容器關閉觸發(fā)的事件,WindowListener繼承了WindowsAdapter類并覆蓋了WindowsClosing方法。
四、系統(tǒng)詳細設計4.1.初始化組件initTextContent(); initMenu(); initAboutDialog();4.2.構(gòu)建菜單欄及其下拉菜單JMenu[]menus=newJMenu[]{ newJMenu("文件"), newJMenu("編輯"), newJMenu("關于") JMenuItemoptionofmenu[][]=newJMenuItem[][]{{ newJMenuItem("新建"), newJMenuItem("打開"), newJMenuItem("保存"), newJMenuItem("退出") newJMenuItem("復制"), newJMenuItem("剪切"), newJMenuItem("粘貼"), newJMenuItem("顏色")newJMenuItem("關于")4.3.“文件”菜單的事件監(jiān)聽ActionListeneraction=newActionListener(){publicvoidactionPerformed(ActionEvente){ Stringname=e.getActionCommand(); JMenuItemMI=(JMenuItem)e.getSource(); if("新建".equals(name)){ content.setText(""); file=null; }elseif("打開".equals(name)){if(file!=null)openfile.setSelectedFile(file);intreturnVal=openfile.showOpenDialog(mynotepad.this);if(returnVal==JFileChooser.APPROVE_OPTION){file=openfile.getSelectedFile();unfold(); }elseif("保存".equals(name)){ if(file!=null)openfile.setSelectedFile(file);intreturnVal=openfile.showSaveDialog(mynotepad.this);if(returnVal==JFileChooser.APPROVE_OPTION){file=openfile.getSelectedFile();saving();}elseif("退出".equals(name)){mynotepadf=newmynotepad();ints=JOptionPane.showConfirmDialog(f,"退出?","退出",JOptionPane.YES_NO_OPTION);4.4.“編輯”菜單的事件監(jiān)聽elseif("剪切".equals(name)){content.cut();}elseif("復制".equals(name)){content.copy();}elseif("粘貼".equals(name)){content.paste();}elseif("顏色".equals(name)){color=JColorChooser.showDialog(mynotepad.this,"",color);content.setForeground(color);4.5.異常處理在運行程序代碼是有可能會產(chǎn)生異常情況或異常事件,為了避免這種情況,就需要在程序中用到Java異常處理機制。本程序中選用的異常處理機制是try,catch。捕獲處理異常的第一步是用try選定要監(jiān)控的異常范圍,try后跟隨catch代碼塊。saving(){try{FileWriterWritef=newFileWriter(file);Writef.write(content.getText());Writef.close();catch(Exceptione){e.printStackTrace();}voidunfold(){try{FileReaderReadf=newFileReader(file);intlen=(int)file.length();char[]buffer=newchar[len];Readf.read(buffer,0,len);Readf.close();content.setText(newString(buffer));}catch(Exceptione){e.printStackTrace();}
五、系統(tǒng)調(diào)試分析Java記事本采用的是JavaSE中的GUI和IO基本技術(shù),主界面如下:圖4:記事本主界面圖5:點擊“文件”運行情況圖6:“文件”菜單中的“打開”對話框圖7:“編輯”中的各項功能
六、總結(jié)經(jīng)過近兩周的努力,終于完成了我的Java課程設計——記事本程序,基本實現(xiàn)了所需功能。通過這次的課程設計,使我從書本上學習到的理論知識用到了實踐上,從而進一步鞏固和豐富了我所學過的知識,讓我更深層次地認識到Java及其強大的功能。同時,做這門課程設計也進一步加強了我的動手能力。在這過程中也無形中鍛煉了我的思維分析、遇到問題及想方設法通過各種途徑解決問題的能力。通過該課程設計,收獲頗多。首先,讓我加深了對Java語言的理論知識的理解;其次,讓我更加熟練的掌握了Java語言的設計能力并且有了實踐經(jīng)驗;再次,在設計過程中,學到了老師沒有在課堂上沒有教授的知識;最后,加強了我對Java語言的學習興趣和好感。參考文獻[1]耿詳義,張躍平.Java2實用教程.北京:清華大學出版社,2019.2[2]張利國.Java實用教程案例.北京:清華大學出版社,2019.10[3]周曉聰,等.面向?qū)ο蟪绦蛟O計及Java語言.北京:機械工業(yè)出版社,2019.3[4]李尊朝.Java語言程序設計.北京:中國鐵道出版社,2019.2[5](美)PhilipHellerplateJava2CertificationStudyGuideFourthEdition(Java2證學習指南)(第四版英文版).北京:電子工業(yè)出版社,2019.1
附:程序清單packagecom;importjava.awt.*;importjava.io.*;importjava.awt.datatransfer.*;importjava.awt.event.*;importjavax.swing.JOptionPane;publicclassMainextendsFrameimplementsActionListener{privatestaticfinallongserialVersionUID=1L;TextAreatextArea=newTextArea();MenuBarmenuBar=newMenuBar();MenufileMenu=newMenu("文件");MenuItemnewItem=newMenuItem("新建");MenuItemopenItem=newMenuItem("打開");MenuItemsaveItem=newMenuItem("保存");MenuItemsaveAsItem=newMenuItem("另存為");MenuItemexitItem=newMenuItem("退出");MenueditMenu=newMenu("編輯");MenuItemselectItem=newMenuItem("全選");MenuItemcopyItem=newMenuItem("復制");MenuItemcutItem=newMenuItem("剪切");MenuItempasteItem=newMenuItem("粘貼");StringfileName=null;ToolkittoolKit=Toolkit.getDefaultToolkit();ClipboardclipBoard=toolKit.getSystemClipboard();privateFileDialogopenFileDialog=newFileDialog(this,"OpenFile",FileDialog.LOAD);privateFileDialogsaveAsFileDialog=newFileDialog(this,"SaveFileAs",FileDialog.SAVE);publicMain(){setTitle("記事本程序-byzhl");setFont(newFont("TimesNewRoman",Font.PLAIN,12));setBackground(Color.white);setSize(500,350);fileMenu.add(newItem);fileMenu.add(openItem);fileMenu.addSeparator();fileMenu.add(saveItem);fileMenu.add(saveAsItem);fileMenu.addSeparator();fileMenu.add(exitItem);editMenu.add(selectItem);editMenu.addSeparator();editMenu.add(copyItem);editMenu.add(cutItem);editMenu.add(pasteItem);menuBar.add(fileMenu);menuBar.add(editMenu);setMenuBar(menuBar);add(textArea);addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);newItem.addActionListener(this);openItem.addActionListener(this);saveItem.addActionListener(this);saveAsItem.addActionListener(this);exitItem.addActionListener(this);selectItem.addActionListener(this);copyItem.addActionListener(this);cutItem.addActionListener(this);pasteItem.addActionListener(this);publicvoidactionPerformed(ActionEvente){//監(jiān)聽事件ObjecteventSource=e.getSource();if(eventSource==newItem){textArea.setText("");}elseif(eventSource==openItem){openFileDialog.show();fileName=openFileDialog.getDirectory()+openFileDialog.getFile();if(fileName!=null)readFile(fileName);}elseif(eventSource==saveItem){if(fileName!=null)writeFile(fileName);}elseif(eventSource==saveAsItem){saveAsFileDialog.show();fileName=saveAsFileDialog.getDirectory()+saveAsFileDialog.getFile();if(fileName!=null)writeFile(fileName);}elseif(eventSource==selectItem){textArea.selectAll();}elseif(eventSource==copyItem){Stringtext=textArea.getSelectedText();StringSelectionselection=newStringSelection(text);clipBoard.setContents(selection,null);}elseif(eventSource==cutItem){Stringtext=textArea.getSelectedText();StringSelectionselection=newStringSelection(text);clipBoard.setContents(selection,null);textArea.replaceRange("",textArea.getSelectionStart(),textArea.getSelectionEnd());}elseif(eventSource==pasteItem){Transferablecontents=clipBoard.getContents(this);if(contents==null)return;Stringtext;text="";try{text=(String)contents.getTransferData(DataFlavor.stringFlavor);}catch(ExceptionException){textArea.replaceRange(text,textArea.getSelectionStart(),textArea.getSelectionEnd());}elseif(eventSource==exitItem){System.exit(0);classchazextendsDialogimplementsActionListener{//查找事件處理類Stringwenben;TextAreata;booleanflg=false;intlen;intstart=0;intk=0;Labels=newLabel("查找的字符串");Labely=newLabel("替代的字符串");TextFieldsr=newTextField(10);TextFieldth=newTextField(10);Buttonc1=newButton("查找");Buttonc2=newButton("替換");publicchaz(TextAreata){super(newFrame(),"查找或替換");this.ta=ta;Panelpan1=newPanel();Panelpan2=newPanel();//pan1.setLayout(BoxLayout);//pan2.setLayout(BoxLayout);pan1.add(s);pan1.add(sr);pan1.add(c1);pan2.add(y);pan2.add(th);pan2.add(c2);setResizable(false);setBounds(200,200,300,100);add(pan1,BorderLayout.NORTH);add(pan2,BorderLayout.SOUTH);c1.addActionListener(this);c2.addActionListener(this);addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){chaz.this.dispose();setVisible(true);sr.addKeyListener(newKeyListener(){publicvoidkeyReleased(KeyEvente){start=0;k=0;flg=false;}publicvoidkeyPressed(KeyEventel){}publicvoidkeyTyped(KeyEventei){}publicvoidactionPerformed(ActionEvente){//查找替換事件處理方法Stringske=sr.getText();wenben=ta.getText();Stringtke=th.getText();if(e.getSource()==c1)c1.setLabel("下一個");if(ske!=null)len=ske.length();start=wenben.indexOf(ske,k);k=start+len;ta.se
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《模具制造工藝學》教學大綱
- 教案裝訂順序
- 四個自信課件
- 玉溪師范學院《現(xiàn)代教育技術(shù)》2022-2023學年第一學期期末試卷
- 玉溪師范學院《田徑》2021-2022學年第一學期期末試卷
- 教練員繼續(xù)教育考試題目及答案-知識題庫
- 湖南師大附中2024-25屆高三年級月考試卷(二)(英語)
- 電商公司整體薪酬設計(早期)
- 《信號基礎設備》全套教學課件
- 2023年雙頻、雙模移動通信手機項目綜合評估報告
- 《老年人生活照護》試卷A卷及答案
- 消防安全知識培訓課件
- 高中歷史選擇性必修2知識點總結(jié)歸納
- 16J914-1 公用建筑衛(wèi)生間
- 物聯(lián)網(wǎng)應用技術(shù)職業(yè)生涯規(guī)劃
- 2024年廣東恒健投資控股有限公司招聘筆試參考題庫含答案解析
- 新訓工作總結(jié)(共5篇)
- 五年級下冊牛津英語期中試卷【精】
- 《垃圾分類》ppt課件
- (最新整理)案件(線索)移送登記表
- (完整版)U型板樁專項施工方案
評論
0/150
提交評論