JAVA課程設(shè)計記事本(含代碼)_第1頁
JAVA課程設(shè)計記事本(含代碼)_第2頁
JAVA課程設(shè)計記事本(含代碼)_第3頁
JAVA課程設(shè)計記事本(含代碼)_第4頁
JAVA課程設(shè)計記事本(含代碼)_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

PAGEVJava程序課程設(shè)計任務(wù)書一、主要任務(wù)與目標1.掌握java語言,能夠?qū)W會使用JCreator開發(fā)具體的軟件。2.使用所學(xué)知識開發(fā)一個基于Java的記事本。二、主要內(nèi)容與基本要求本程序在執(zhí)行后應(yīng)能處理文本編輯的一些基本功能。根據(jù)記事本的特點,程序主要功能設(shè)計有:打開文件,讀取文件中的文本信息:對原有文件可實行打開操作,并能讀取文件中的內(nèi)容,以方便對文件的查看,修改等任務(wù)。顯示、編輯修改文本信息:記事本對文字信息的主要處理功能。可對相關(guān)信息進行復(fù)制,剪切,粘貼等操作。實現(xiàn)新建、保存文本文件:新建文本可以使用戶寫入新的信息,文件保存后再次打開仍可獲得原有信息。三、計劃進度1.12月28日--12月28日:搜集資料、查閱文獻,確定選題2.12月29日--12月30日:需求分析,系統(tǒng)設(shè)計,系統(tǒng)功能模塊完善3.1月1日--1月3日:編程實現(xiàn)系統(tǒng)、系統(tǒng)測試與修改

4.1月4日--1月5日:課程設(shè)計報告撰寫5.1月6日--1月7日:課程設(shè)計報告答辯四、主要參考文獻(1)洪維恩何嘉java2面向?qū)ο蟪绦蛟O(shè)計.中國鐵道出版社,2004.2(2)耿祥義張躍平Java大學(xué)實用教程(第2版).電子工業(yè)出版社,2008.5(3)孫全黨王吳迪趙楓朝Java程序設(shè)計應(yīng)用教程,電子工業(yè)出版社,2006.2摘要隨時著科學(xué)技術(shù)的快速發(fā)展,計算機程序設(shè)計早已成為了趨勢,JAVA是計算機專業(yè)的核心課程,是計算機科學(xué)的算法理論基礎(chǔ)和軟件設(shè)計的技術(shù)基礎(chǔ)。JAVA是實踐性很強的課程。課程設(shè)計是加強實踐能力的一個強有力手段。要求掌握JAVA的應(yīng)用、編寫、上機調(diào)試的基本方法。本課程設(shè)計就是主要利用java語言編寫的一個模仿windows記事本的較簡單的程序,它能實現(xiàn)打開文件,讀取文件中的文本信息;顯示、編輯修改文本信息;實現(xiàn)新建、打開、保存文本文件以及控制保存文本信息到指定的文件的一些基本功能。該記事本是一個基于JCreator的應(yīng)用程序。整個界面從符合操作簡便、界面友好、靈活、安全的要求出發(fā),完成文本編輯的過程。本課程設(shè)計報告介紹了記事本系統(tǒng),記事本的設(shè)計,在記事本的具體實現(xiàn)章節(jié),給出了部分實現(xiàn)了的功能界面和相關(guān)的代碼。關(guān)鍵詞:JAVA,記事本,相關(guān)功能ABSTRACTWiththerapiddevelopmentofscienceandtechnology,computerprogramminghasalreadybecomeatrend.JAVAisacorecourseofcomputerprofessional,isthebaseofcomputerscience.JAVAarepractice-neededcurriculum.Thiscourseisdesignedtostrengthenpracticeabilityofapowerfulway,requiringJAVAapplicationsandthebasicmethodsofcomputerdebugging.ThiscourseisasimpleproceduresdesignedmainlyusingJavalanguageandtheimitationofWindowsnotepad.Itcanrealizethatopenfiles,readthetextfileinformation,display,editandmodifytextinformation,new,openandsavetextfilesandcontroltosavetextmessagestothespecifiedfileandsoon.Thisgivesatexteditorgreatconvenience,andatthesametimegreatlyimprovestheefficiency.ThistexteditorisaapplicationbasedonJCreator.Theentireinterfacecompletetexteditingprocessbytherequirementofeasilyoperation,friendlyinterface,flexiblityandsecure.Thisreportintroducesnotebooksystemandnotepaddesign.Inthechapterofnotepadrealization,itgivespartofrealizedfunctioninterfaceandrelevantcode.Keywords:JAVA,notepad,Relevantfunction目錄Java程序課程設(shè)計任務(wù)書 II摘要 IIIABSTRACT III目錄 V第1章引言 11.1背景 11.2課程設(shè)計內(nèi)容 11.3任務(wù)分工 2第2章記事本系統(tǒng) 32.1記事本概述 32.2記事本的任務(wù)及目的 32.3本章小結(jié) 3第3章記事本的設(shè)計 43.1系統(tǒng)需求分析 43.2系統(tǒng)開發(fā)及運行環(huán)境 43.3記事本總體結(jié)構(gòu)(流程圖) 53.4記事本系統(tǒng)各模塊介紹 53.5本章小結(jié) 6第4章系統(tǒng)的具體實現(xiàn) 74.1窗口設(shè)計 74.2程序功能設(shè)計及調(diào)試運行 84.2.1在下拉菜單中加入子菜單并進行監(jiān)聽,分別實現(xiàn)對文件的操作功能。點擊不同菜單項時,顯示不同接口。 94.2.2加入工具欄的功能鍵,通過工具欄實現(xiàn)對文本的基本操作。 114.2.4Jcreater 154.3本章小結(jié) 18第5章改進部分 195.1加登陸界面 195.1.1登陸界面設(shè)計 195.1.2系統(tǒng)主界面 22第6章結(jié)束語 24致謝 25參考文獻 26附錄源代碼 27PAGE34第1章引言1.1背景在文本編輯器出現(xiàn)前,人們用打孔機把計算機文字打到穿孔卡片上。文字存放于一個裝著這樣的薄卡片的盒子里,可以用讀卡器來閱讀它。第一個文本編輯器是一種行編輯器,它運行在打字機型的終端上,這種編輯器并不具備在窗口和屏幕中顯示的功能。它包含了一些非常短的命令(為了減少打字量)。其中一個命令能夠把文件的指定部分通過打字機打印出來。編輯光標是想象中的一個插入點,通過特殊命令,可以把它移動到特定內(nèi)容字符串所在的行。隨后,內(nèi)容字符串又被擴展成正則表達式。如果想看到文件的變化,你需要把它打印出來。相對于穿孔機來說,人們認為這種基于行的文本編輯器具有革命性的進步。如果沒有它,用戶就需要把那些處理文本的命令打成專用的卡片,并在編輯文件時使用這些卡片。當帶有顯示屏的計算機終端出現(xiàn)后,基于顯示屏的文本編輯器開始流行起來。最早的全屏編輯器中,有一種叫做O26,它是于1967年為CDC6000系列機器的操作控制臺而作的。另外一個早期的全屏編輯器是vi。vi誕生于20世紀70年代,至今,它仍是Unix和Linux的標準編輯器。全屏編輯器對視頻終端的銷售起到了促進的作用。1.2課程設(shè)計內(nèi)容記事本充分發(fā)揮文本編輯的優(yōu)勢,通過各種操作的有機結(jié)合,實現(xiàn)文本編輯的各項所需功能。本程序的研究內(nèi)容涉及記事本功能實現(xiàn)的全過程。

該記事本功能包含以下內(nèi)容:(1)打開文件,讀取文件中的文本信息:對原有文件可實行打開操作,并能讀取文件中的內(nèi)容,以方便對文件的查看,修改等任務(wù)。(2)顯示、編輯修改文本信息:記事本對文字信息的主要處理功能。可對相關(guān)信息進行復(fù)制,剪切,粘貼等操作。(3)實現(xiàn)新建、保存文本文件:新建文本可以使用戶寫入新的信息,文件保存后再次打開仍可獲得原有信息。1.3任務(wù)分工第2章記事本系統(tǒng)2.1記事本概述記事本是一種只能處理純文本的文件。由于多種格式源代碼都是純文本的,所以記事本也就成為了使用最多的源代碼編輯器。它只具備最基本的編輯功能,所以體積小巧,啟動快,占用內(nèi)存低,容易使用。“記事本”的功能雖然連“寫字板”都比不上,但它還是有它自己的獨門絕技的。下面我們就來看看記事本吧。相對于微軟的Word來說“記事本”的功能確實是太單薄了,只有:新建,保存,打印,查找,替換這幾個功能。但是“記事本”卻擁有一個Word不可能擁有的優(yōu)點:打開速度快,文件小。我相信對于這一點大家一定是深有感觸地,一點就打開;同樣的文本文件用Word保存和用記事本保存的文件大小就大不相同,所以對于大小在64KB以下的純文本的保存最好還是采用記事本。記事本另一項不可取代的功能是:可以保存無格式文件。你可以把記事本編輯的文件保存為:“.html”,“.java”,“.asp”等等任意格式。這使得“記事本”又找到了一個新的用途:作為程序語言的編輯器。翻開任何一本介紹一門編程語言的入門教材,里面都會建議學(xué)生在記事本中編寫源程序。記事本使用的一個老竅門,在記事本文件的開頭輸入:“.LOG”之后你每次打開這個文件就會在自動的紀錄下文本打開的時間。2.2記事本的任務(wù)及目的打開計算本窗口,在編輯區(qū)進行文本的輸入,可以使用剪切、拷貝、粘貼等功能鍵,當文本輸入完畢后點擊“文件”菜單,選擇下拉菜單中的“保存文本”打開“保存”窗口,選擇保存文件的根目錄進行保存。當需要關(guān)閉窗口時可通過“文件”菜單下的“退出系統(tǒng)”選項,或者選擇“工具欄”中的“退出系統(tǒng)”按鈕,也可以直接點擊窗口右上角的關(guān)閉圖標進行關(guān)閉。2.3本章小結(jié)記事本是一種只能處理純文本的文件。可以通過菜單欄和工具欄實現(xiàn)以下功能:如文件的新建,打開,保存和退出;對文件的編輯,如復(fù)制,剪切,粘貼;以及幫助菜單;執(zhí)行完操作后,能夠順利關(guān)閉記事本。第3章記事本的設(shè)計這一章時進銷存管理系統(tǒng)的設(shè)計,從系統(tǒng)需求分析開始,介紹開發(fā)環(huán)境和用到的開發(fā)工具,系統(tǒng)主要的功能設(shè)計,系統(tǒng)的數(shù)據(jù)流程圖。3.1系統(tǒng)需求分析記事本的設(shè)計目標為:打開計算本窗口,在編輯區(qū)進行文本的輸入,可以使用剪切、拷貝、粘貼等功能鍵,當文本輸入完畢后點擊“文件”菜單,選擇下拉菜單中的“保存文本”打開“保存”窗口,選擇保存文件的根目錄進行保存。當需要關(guān)閉窗口時可通過“文件”菜單下的“退出系統(tǒng)”選項,或者選擇“工具欄”中的“退出系統(tǒng)”按鈕,也可以直接點擊窗口右上角的關(guān)閉圖標進行關(guān)閉。3.2系統(tǒng)開發(fā)及運行環(huán)境硬件平臺:*586以上的計算機*32MB以上的內(nèi)存*彩色顯示器*3.5寸高密軟盤驅(qū)動器*光盤驅(qū)動器*4G以上硬盤空間*鼠標軟件平臺:*WINDOWS95或WINDOWS98*JcreatorPro全套軟件3.3記事本總體結(jié)構(gòu)(流程圖)圖3.1系統(tǒng)功能結(jié)構(gòu)圖3.4記事本系統(tǒng)各模塊介紹系統(tǒng)各功能模塊實現(xiàn)的功能為:新建記事本:在文件的下拉菜單中點擊新建文本或單擊工具欄中的新建文本,將文本刷新。打開原有的記事本:在文件的下拉菜單中點擊打開文本或單擊工具欄中的打開文本,再選中原有的記事本,單擊打開按鈕,便將原有文本打開。拷貝:先選中需復(fù)制的文本,在編輯的下拉菜單中點擊拷貝或單擊工具欄中的拷貝,便將所選文本復(fù)制了。粘貼:在編輯的下拉菜單中點擊粘貼或單擊工具欄中的粘貼,便將所復(fù)制的文本粘貼到需粘貼的地方。剪貼:先選中需剪貼的文本,在編輯的下拉菜單中點擊剪貼或單擊工具欄中的剪貼,便將所選文本剪貼了。保存:在文件的下拉菜單中點擊保存文本或單擊工具欄中的保存文本,便將改變的文本保存好。退出系統(tǒng):在文件的下拉菜單中點擊退出系統(tǒng)或單擊工具欄中的退出系統(tǒng),或直接點擊狀態(tài)欄中的,從而關(guān)閉文本。3.5本章小結(jié)本章介紹了該記事本的運行環(huán)境,以及各功能的體現(xiàn)。第4章系統(tǒng)的具體實現(xiàn)界面是系統(tǒng)之間最直接的交互界面,界面的友好性體現(xiàn)了軟件設(shè)計的質(zhì)量,并在很大程度上決定了軟件是否成功。4.1窗口設(shè)計在主接口中設(shè)計一個EditorDemo容器繼承自JFrame,并在其中加入菜單欄、工具欄和一個文本域控件。publicclassEditorDemoextendsJFrameJTextPanetextPane=newJTextPane();//創(chuàng)建文本窗格,編輯窗口JFileChooserfilechooser=newJFileChooser();//文件選擇器setJMenuBar(createJMenuBar(actions));//設(shè)置菜單欄Containercontainer=getContentPane();//得到容器container.add(createJToolBar(actions),BorderLayout.NORTH);//工具欄container.add(textPane,BorderLayout.CENTER);//增加文本窗格窗口設(shè)計流程圖:設(shè)計一個容器繼承自JFrame設(shè)計一個容器繼承自JFrame創(chuàng)建文本窗格,編輯窗口創(chuàng)建文件選擇器設(shè)置菜單欄得到容器添加工具欄添加文本窗格圖4.1窗口模塊框圖4.2程序功能設(shè)計及調(diào)試運行利用JSP“一次編寫,各處運行”的編程優(yōu)點,按功能模塊結(jié)構(gòu)設(shè)計菜單,布置各明細模塊工作界面,編寫各個模塊的程序代碼,進行編譯連接運行,經(jīng)過反復(fù)調(diào)試修改,以達到系統(tǒng)功能要求。這個過程具有大量的工作量,應(yīng)仔細對每個程序細節(jié)進行分析思考、編寫程序并調(diào)試,做到程序簡潔清楚,盡量避免可能潛在的程序錯誤,并在必要的地方加以注釋,以便于程序閱讀和修改。4.2.1在下拉菜單中加入子菜單并進行監(jiān)聽,分別實現(xiàn)對文件的操作功能。點擊不同菜單項時,顯示不同接口。部分代碼:privateJMenuBarcreateJMenuBar(Action[]actions)//創(chuàng)建菜單欄 JMenuBarmenubar=newJMenuBar();//實例化菜單欄 JMenumenuFile=newJMenu("文件(F)");//實例化菜單JMenumenuEdit=newJMenu("編輯(E)"); JMenumenuFormat=newJMenu("格式(O)"); JMenumenuFind=newJMenu("查找(V)"); JMenumenuAbout=newJMenu("幫助(H)"); menuFile.add(newJMenuItem(actions[0]));//增加新菜單項 menuFile.add(newJMenuItem(actions[1])); menuFile.add(newJMenuItem(actions[2])); menuFile.addSeparator(); menuFile.add(newJMenuItem(actions[7])); menuEdit.add(newJMenuItem(actions[3])); menuEdit.add(newJMenuItem(actions[4])); menuEdit.add(newJMenuItem(actions[5])); menuAbout.add(newJMenuItem(actions[6])); menubar.add(menuFile);//增加菜單 menubar.add(menuEdit); menubar.add(menuFormat); menubar.add(menuFind); menubar.add(menuAbout); returnmenubar;//返回菜單欄實現(xiàn)對文件的操作功能流程圖:創(chuàng)建菜單欄創(chuàng)建菜單欄實例化菜單欄增加新菜單項添加菜單返回菜單欄圖4.2實現(xiàn)操作功能框圖如下圖:圖4.2.1文件菜單功能生成界面圖4.2.2編輯菜單功能生成界面圖4.2.3幫助菜單功能生成界面4.2.2加入工具欄的功能鍵,通過工具欄實現(xiàn)對文本的基本操作。關(guān)鍵代碼:Action[]actions=//Action數(shù)組,各種操作命令 newNewAction(), newOpenAction(), newSaveAction(), newCutAction(), newCopyAction(), newPasteAction(), newAboutAction(), newExitAction(),privateJToolBarcreateJToolBar(Action[]actions)//創(chuàng)建工具條 JToolBartoolBar=newJToolBar();//實例化工具條 JButtonbt=newJButton(actions[i]);//實例化新的按鈕 toolBar.add(bt);//增加按鈕到工具欄如圖所示:4.2.3對每個菜單項進行注冊監(jiān)聽。點擊不同功能鍵時,實現(xiàn)不同的操作,顯示不同的窗口。主要實現(xiàn)方法代碼如下:classNewActionextendsAbstractAction{//實現(xiàn)新建文件命令功能 publicNewAction(){ super("新建文本");} publicvoidactionPerformed(ActionEvente){ textPane.setDocument(newDefaultStyledDocument());//清空文檔 }}classOpenActionextendsAbstractAction{//實現(xiàn)打開文件命令功能 publicOpenAction(){ super("打開文本");} publicvoidactionPerformed(ActionEvente){ inti=filechooser.showOpenDialog(EditorDemo.this);//顯示打開文件對話框 if(i==JFileChooser.APPROVE_OPTION){//點擊對話框中打開選項 Filef=filechooser.getSelectedFile();//得到選擇的文件 try{ InputStreamis=newFileInputStream(f);//得到文件輸入流 textPane.read(is,"d");//讀入文件到文本窗格 }catch(Exceptionex){ ex.printStackTrace();//輸出出錯信息 }}}}如下圖:圖4.2.4打開文件生成界面classSaveActionextendsAbstractAction{//實現(xiàn)保存文本命令 publicSaveAction(){ super("保存文本");} publicvoidactionPerformed(ActionEvente){ inti=filechooser.showSaveDialog(EditorDemo.this);//顯示保存文件對話框 if(i==JFileChooser.APPROVE_OPTION){//點擊對話框中保存按鈕 Filef=filechooser.getSelectedFile();//得到選擇的文件 try{ FileOutputStreamout=newFileOutputStream(f);//得到文件輸出流 out.write(textPane.getText().getBytes());//寫出文件 }catch(Exceptionex){ ex.printStackTrace();//輸出出錯信息 }}}}如下圖:圖4.3.1保存文件生成界面classExitActionextendsAbstractAction{//實現(xiàn)退出命令 publicExitAction(){ super("退出系統(tǒng)");} publicvoidactionPerformed(ActionEvente){ System.exit(0);//退出程序}}classCutActionextendsAbstractAction{//實現(xiàn)剪切命令 publicCutAction(){ super("剪切");} publicvoidactionPerformed(ActionEvente){ textPane.cut();//調(diào)用文本窗格的剪切命令}}classCopyActionextendsAbstractAction{//實現(xiàn)拷貝命令 publicCopyAction(){ super("拷貝");} publicvoidactionPerformed(ActionEvente){textPane.copy();//調(diào)用文本窗格的拷貝命令classPasteActionextendsAbstractAction{//實現(xiàn)粘貼命令publicPasteAction(){ super("粘貼");} publicvoidactionPerformed(ActionEvente){ textPane.paste();//調(diào)用文本窗格的粘貼命令}}classAboutActionextendsAbstractAction{//關(guān)于版本命令 publicAboutAction(){ super("版本");} publicvoidactionPerformed(ActionEvente){Stringstr="記事本\n\版本:1.0\n\n主要功能:實現(xiàn)簡單文本編輯。 JOptionPane.showMessageDialog(EditorDemo.this,str);//顯示軟件信息 }}如下圖:圖4.2.5顯示版本界面生成圖4.2.4JcreaterJcreator是一個用于Java程序設(shè)計的集成開發(fā)環(huán)境,具有編輯、調(diào)試、運行Java程序的功能。為使用者提供了大量強勁的功能,例如:項目管理、工程模板、代碼完成、調(diào)試接口、高亮語法編輯、使用向?qū)б约巴耆勺远x的用戶界面。當前最新版本是Jcreator3.10,它又分為LE和Pro版本。LE版本功能上受到一些限制,是免費版本。Pro版本功能最全,但這個版本是一個共享軟件。這個軟件比較小巧,對硬件要求不是很高,完全用C++寫的,速度快、效率高。具有語法著色、代碼自動完成、代碼參數(shù)提示、工程向?qū)?、類向?qū)У裙δ?。第一次啟動時提示設(shè)置JavaJDK主目錄及JDKJavaDoc目錄,軟件自動設(shè)置好類路徑、編譯器及解釋器路徑,還可以在幫助菜單中使用JDKHelp。4.2.5系統(tǒng)調(diào)試分析1:窗口調(diào)試確定主窗體,設(shè)置主窗體的屬性,對窗體進行布局,加入所需控件并對控件進行初始化。在完成所有方法的源代碼編輯后,對程序進行編譯、運行!會出現(xiàn)窗體如下圖:圖4.2.6編譯運行程序生成界面2:功能調(diào)試對所有菜單項進行注冊監(jiān)聽。在編寫觸發(fā)事件時執(zhí)行各項操作,包括了一些常用部分的事件處理,實現(xiàn)各功能鍵的操作。例如當點擊“文件“按鈕是顯示如下窗口:圖4.2.7文件按鈕實現(xiàn)生成界面當需要打開已存在的文件時,點擊“打開文本”按鈕會出現(xiàn)如下窗口:圖4.2.8打開文件按鈕實現(xiàn)生成界面當輸入完文本是要保存的話,點擊“保存文本”會出現(xiàn)下面的窗口:圖4.2.9輸入文本界面圖4.2.10保存文本界面依次調(diào)試其他功能鍵及窗口,直至達到符合要求的能實現(xiàn)簡易的記事本的功能!4.3本章小結(jié)本章介紹了系統(tǒng)的具體實現(xiàn)和部分關(guān)鍵代碼,其中包括如何實現(xiàn)新建文件,打開文件,保存文件,退出系統(tǒng)以及剪切,拷貝,粘貼等具體操作。第5章改進部分經(jīng)許加兵老師指導(dǎo)后,我們又對源程序進行了修改和完善,并添加了登陸界面這一新的功能,更形象深刻的將我們所學(xué)的知識運用到實建中去。5.1加登陸界面5.1.1登陸界面設(shè)計用戶登陸界面圖如圖如圖5.1.1和圖5.1.2所示:圖5.1.1用戶登錄模塊框圖圖5.1.2用戶登陸界面LoginIn的作用是檢測用戶登陸的合法性,并確認用戶輸入了合法的登錄名和口令部分代碼:classLoginInextendsJFrame{ EditorDemoedit; LoginInlogin; JTextFieldf1; JTextFieldf2; JButtonb1; JButtonb2; Stringpower;//表示權(quán)限 StringimgePath="e:/workspace/GUI/14.gif"; JPanelp5; Imageimg=Toolkit.getDefaultToolkit().createImage(imgePath); LoginIn(EditorDemoedit){ this.edit=edit; login=this; Containercp=getContentPane(); Labell1=newLabel("用戶:"); Labell2=newLabel("密碼:"); JPanelp1=newJPanel(); JPanelp2=newJPanel(); JPanelp3=newJPanel(); JPanelp4=newJPanel(); p5=newJPanel(){ protectedvoidpaintChildren(Graphicsg){ g.drawImage(img,0,0,this); super.paintChildren(g); } }; f1=newJTextField(15); f2=newJPasswordField(15); b1=newJButton("登錄"); b2=newJButton("重置"); p1.setBackground(Color.orange); p2.add(l1); p2.add(f1); p2.setBorder(newMatteBorder(0,0,0,0,Color.BLACK)); p2.setBackground(Color.ORANGE); p3.add(l2); p3.add(f2); p3.setBackground(Color.ORANGE); p3.setBorder(newMatteBorder(0,0,0,0,Color.BLACK)); p4.add(b1); p4.add(b2); p4.setBorder(newMatteBorder(-3,-3,-3,-3,Color.CYAN)); p4.setBackground(Color.ORANGE); p5.setLayout(newFlowLayout(FlowLayout.CENTER,20,20)); p5.add(p2); p5.add(p3); p5.add(p4); cp.add(p5,BorderLayout.CENTER); b1.addActionListener(newEnter()); b2.addActionListener(newReWrite()); addWindowListener(newwinClose()); } classEnterimplementsActionListener{ publicvoidactionPerformed(ActionEvente){ if((f1.getText()).equals("admin")&&(f2.getText()).equals("123")){ JOptionPane.showMessageDialog(null,"登錄成功!用戶權(quán)限是adimistrator"); power="adminstrator"; login.setVisible(false); edit.setVisible(true); }elseif((f1.getText()).equals("snake") &&(f2.getText()).equals("123456")){ JOptionPane.showMessageDialog(null,"登錄成功!登錄成功!用戶權(quán)限是user"); power="adminstrator"; }else JOptionPane.showMessageDialog(null,"登錄失敗,請重新登錄!"); } } classReWriteimplementsActionListener{ publicvoidactionPerformed(ActionEvente){ f1.setText(""); f2.setText(""); f1.requestFocus(); } } classwinCloseextendsWindowAdapter{ publicvoidwindowClosing(WindowEvente){ (e.getWindow()).dispose(); System.exit(0); } }}5.1.2系統(tǒng)主界面登陸成功界面:圖5.2登陸成功界面登陸成功后彈出記事本界面:圖5.2系統(tǒng)主界面第6章結(jié)束語由于計算機的普及,各行業(yè)、各單位都有計算機軟件系統(tǒng)的應(yīng)用。該程序所體現(xiàn)的記事本功能為相關(guān)記事本的操作和管理帶來諸多方便,提高了工作效率。本課程設(shè)計的記事本通過在JAVA平臺編譯、運行源代碼,打開計算本窗口,在編輯區(qū)進行文本的輸入,可以使用剪切、拷貝、粘貼等功能鍵,當文本輸入完畢后點擊“文件”菜單,選擇下拉菜單中的“保存文本”打開“保存”窗口,選擇保存文件的根目錄進行保存。當需要關(guān)閉窗口時可通過“文件”菜單下的“退出系統(tǒng)”選項,或者選擇“工具欄”中的“退出系統(tǒng)”按鈕,也可以直接點擊窗口右上角的關(guān)閉圖標進行關(guān)閉。經(jīng)過java記事本的課程設(shè)計,收獲到了很多,加深了對Java語言的理論知識的理解;更加熟練的掌握了Java語言的設(shè)計能力并且有了實踐經(jīng)驗;在設(shè)計過程中,學(xué)到了許多在課堂上沒有教授的知識;加強了對Java語言的學(xué)習(xí)興趣和好感。致謝參考文獻(1)洪維恩何嘉java2面向?qū)ο蟪绦蛟O(shè)計.中國鐵道出版社,2004.2(2)耿祥義張躍平Java大學(xué)實用教程(第2版).電子工業(yè)出版社,2008.5(3)孫全黨王吳迪趙楓朝Java程序設(shè)計應(yīng)用教程,電子工業(yè)出版社,2006.2附錄源代碼程序源代碼://記事本importjava.awt.BorderLayout;importjava.awt.Color;importjava.awt.Container;importjava.awt.FlowLayout;importjava.awt.Font;importjava.awt.Graphics;importjava.awt.Image;importjava.awt.Label;importjava.awt.Toolkit;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.WindowAdapter;importjava.awt.event.WindowEvent;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.InputStream;importjavax.swing.AbstractAction;importjavax.swing.Action;importjavax.swing.JButton;importjavax.swing.JFileChooser;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JMenu;importjavax.swing.JMenuBar;importjavax.swing.JMenuItem;importjavax.swing.JOptionPane;importjavax.swing.JPanel;importjavax.swing.JPasswordField;importjavax.swing.JTextField;importjavax.swing.JTextPane;importjavax.swing.JToolBar;importjavax.swing.border.MatteBorder;importjavax.swing.text.DefaultEditorKit.CopyAction;importjavax.swing.text.DefaultEditorKit.CutAction;importjavax.swing.text.DefaultEditorKit.PasteAction;importjavax.swing.text.DefaultStyledDocument;publicclassEditorDemoextendsJFrame{ JTextPanetextPane=newJTextPane();//文本窗格,編輯窗口 JLabelstatusBar=newJLabel();//狀態(tài)欄 JFileChooserfilechooser=newJFileChooser();//文件選擇器 publicEditorDemo(){//構(gòu)造函數(shù) super("簡易記事本");//調(diào)用父類構(gòu)造函數(shù) Action[]actions=//Action數(shù)組,各種操作命令 {newNewAction(),newOpenAction(),newSaveAction(),newCutAction(), newCopyAction(),newPasteAction(),newAboutAction(), newExitAction(),}; setJMenuBar(createJMenuBar(actions));//設(shè)置菜單欄 Containercontainer=getContentPane();//得到容器 container.add(createJToolBar(actions),BorderLayout.NORTH);//增加工具欄 container.add(textPane,BorderLayout.CENTER);//增加文本窗格 container.add(statusBar,BorderLayout.SOUTH);//增加狀態(tài)欄 setSize(500,400);//設(shè)置窗口尺寸// setVisible(true);//設(shè)置窗口可視 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//關(guān)閉窗口時退出程序 } privateJMenuBarcreateJMenuBar(Action[]actions){//創(chuàng)建菜單欄 JMenuBarmenubar=newJMenuBar();//實例化菜單欄 JMenumenuFile=newJMenu("文件(F)");//實例化菜單 JMenumenuEdit=newJMenu("編輯(E)"); JMenumenuFormat=newJMenu("格式(O)"); JMenumenuFind=newJMenu("查找(V)"); JMenumenuAbout=newJMenu("幫助(H)"); menuFile.add(newJMenuItem(actions[0]));//增加新菜單項 menuFile.add(newJMenuItem(actions[1])); menuFile.add(newJMenuItem(actions[2])); menuFile.addSeparator(); menuFile.add(newJMenuItem(actions[7])); menuEdit.add(newJMenuItem(actions[3])); menuEdit.add(newJMenuItem(actions[4])); menuEdit.add(newJMenuItem(actions[5])); menuAbout.add(newJMenuItem(actions[6])); menubar.add(menuFile);//增加菜單 menubar.add(menuEdit); menubar.add(menuFormat); menubar.add(menuFind); menubar.add(menuAbout); returnmenubar;//返回菜單欄 } privateJToolBarcreateJToolBar(Action[]actions){//創(chuàng)建工具條 JToolBartoolBar=newJToolBar();//實例化工具條 for(inti=0;i<actions.length;i++){ JButtonbt=newJButton(actions[i]);//實例化新的按鈕 bt.setRequestFocusEnabled(false);//設(shè)置不需要焦點 bt.setFont(newFont("宋體",Font.PLAIN,12)); bt.setBackground(Color.pink); toolBar.add(bt);//增加按鈕到工具欄 } returntoolBar;//返回工具欄 } classNewActionextendsAbstractAction{//新建文件命令 publicNewAction(){ super("新建文本"); } publicvoidactionPerformed(ActionEvente){ textPane.setDocument(newDefaultStyledDocument());//清空文檔 } } classOpenActionextendsAbstractAction{//打開文件命令 publicOpenAction(){ super("打開文本"); } publicvoidactionPerformed(ActionEvente){ inti=filechooser.showOpenDialog(EditorDemo.this);//顯示打開文件對話框 if(i==JFileChooser.APPROVE_OPTION){//點擊對話框中打開選項 Filef=filechooser.getSelectedFile();//得到選擇的文件 try{ InputStreamis=newFileInputStream(f);//得到文件輸入流 textPane.read(is,"d");//讀入文件到文本窗格 }catch(Exceptionex){ ex.printStackTrace();//輸出出錯信息 } } } } classSaveActionextendsAbstractAction{//保存命令 publicSaveAction(){ super("保存文本"); } publicvoidactionPerformed(ActionEvente){ inti=filechooser.showSaveDialog(EditorDemo.this);//顯示保存文件對話框 if(i==JFileChooser.APPROVE_OPTION){//點擊對話框中保存按鈕 Filef=filechooser.getSelectedFile();//得到選擇的文件 try{ FileOutputStreamout=newFileOutputStream(f);//得到文件輸出流 out.write(textPane.getText().getBytes());//寫出文件 }catch(Exceptionex){ ex.printStackTrace();//輸出出錯信息 } } } } classExitActionextendsAbstractAction{//退出命令 publicExitAction(){ super("退出系統(tǒng)"); } publicvoidactionPerformed(ActionEvente){ System.exit(0);//退出程序 } } classCutActionextendsAbstractAction{//剪切命令 publicCutAction(){ super("剪切"); } publicvoidactionPerformed(ActionEvente){ textPane.cut();//調(diào)用文本窗格的剪切命令 } } classCopyActionextendsAbstractAction{//拷貝命令 publicCopyAction(){ super("拷貝"); } publicvoidactionPerformed(ActionEvente){ textPane.copy();//調(diào)用文本窗格的拷貝命令 } } classPasteActionextendsAbstractAction{//粘貼命令 publicPasteAction(){ super("粘貼"); } publicvoidactionPerformed(ActionEvente){ textPane.paste();//調(diào)用文本窗格的粘貼命令 } } classAboutActionextendsAbstractAction{//關(guān)于選項命令 publicAboutAction(){ super("版本"); } publicvoidactionPerformed(ActionEvente){ Stringstr="簡易記事本\n\n版本:1.0\n作者:郭孔明\n主要功能:實現(xiàn)簡單文本編輯。"; JOptionPane.showMessageDialog(EditorDemo.this,str);//顯示軟件信息 } } publicstaticvoidmain(String[]args){ LoginInlog=newLoginIn(newEditorDemo()); log.setTitle("系統(tǒng)登錄"); log.setSize(360,250); log.setVisible(true); }}classLoginInextendsJFrame{ EditorDemoedit; LoginInlogin; JTextFieldf1; JTextFieldf2; JButtonb1; JButtonb2; Stringpower;//表示權(quán)限 StringimgePath="e:/workspace/GUI/14.gif"; JPanelp5; Imageimg=Toolkit.getDefaultToolkit().createImage(imgePath); LoginIn(Edi

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論