計(jì)算機(jī)畢業(yè)設(shè)計(jì)論文

上傳人:1666****666 文檔編號(hào):37426943 上傳時(shí)間:2021-11-03 格式:DOC 頁(yè)數(shù):49 大?。?41.02KB
收藏 版權(quán)申訴 舉報(bào) 下載
計(jì)算機(jī)畢業(yè)設(shè)計(jì)論文_第1頁(yè)
第1頁(yè) / 共49頁(yè)
計(jì)算機(jī)畢業(yè)設(shè)計(jì)論文_第2頁(yè)
第2頁(yè) / 共49頁(yè)
計(jì)算機(jī)畢業(yè)設(shè)計(jì)論文_第3頁(yè)
第3頁(yè) / 共49頁(yè)

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《計(jì)算機(jī)畢業(yè)設(shè)計(jì)論文》由會(huì)員分享,可在線閱讀,更多相關(guān)《計(jì)算機(jī)畢業(yè)設(shè)計(jì)論文(49頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說(shuō)明書(shū) I摘摘 要要當(dāng)今,計(jì)算機(jī)以及網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,社會(huì)正快速向信息化社會(huì)前進(jìn),我們需要更智能,更專(zhuān)業(yè)的軟件幫助我們完成工作,從而提高了工作效率。目前文本編輯器種類(lèi)很多,所提供的功能也很多,但是能滿足用戶實(shí)現(xiàn)多種功能和進(jìn)行 Java 的編譯與運(yùn)行很少,不能更好的適應(yīng)當(dāng)前用戶的要求。本設(shè)計(jì)所完成的文本編輯器功能是針對(duì)學(xué)習(xí) Java 程序語(yǔ)言,因此我們利用 Java程序設(shè)計(jì)虛擬機(jī)和軟件對(duì)用戶及使用者的應(yīng)用過(guò)程形成一整套完整的編寫(xiě)代碼,編譯,運(yùn)行。本文本編輯器的開(kāi)發(fā)主要包括界面窗口的菜單欄和工具欄以及樹(shù)結(jié)構(gòu),還有鏈接 Java 虛擬機(jī)實(shí)現(xiàn)編譯與運(yùn)行。使用 SUN 公司

2、的 Java 中的 GUI 作為開(kāi)發(fā)技術(shù),利用其提供的各種類(lèi)與接口,首先建立系統(tǒng)應(yīng)用原型。本文本編輯器的開(kāi)發(fā)采用 JDK6.0 和 UltraEdit 為開(kāi)發(fā)工具,操作系統(tǒng)為Windows98/Windows 2000/Windows XP 等。關(guān)鍵詞:面向?qū)ο蟪绦蛟O(shè)計(jì),GUI,文本編輯器,編譯,運(yùn)行河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說(shuō)明書(shū) IIAbstractNow, computer and internet are experience a sharp development, the information automatic function is more and more powerf

3、ul, and our society is stepping in the information age. So, more Intelligence and more specialized soft are needed to help us improve the efficiency in job.At present the text editor type are many, the function provided are also many too, But can satisfy the user for many kinds of functions and can

4、use Java for the translation and debug are very few, so can not adapt current users request much better. This design completes the text editor function is aims at the Java beginner who study the Java program language,Therefore we use the Java programming hypothesized machine and software form an ent

5、ire set of complete compilation code to the formation users application process, translation, debug. This text editors development mainly includes the contact of surface menu of the window and the tool fence as well as the tree structure, also links to the java hypothesized machine to the translatio

6、n and debug. Use Java GUI API, and the classes of SUN Corporation to found the initial prototype system, then, carries on the demand iteration to the initial prototype system, unceasingly reversing and improvement, until forms the feasible system.This text editors development uses JDK6.0 and Ultra E

7、dit as the development kit, operate system for Windows98/ Windows 2000/ Windows/XP KeywordsKeywords: OOP, java, GUI(Graphical User Interface),text editor, translation, debug.河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說(shuō)明書(shū) III目目 錄錄1 1 前前言言.1 12 2 問(wèn)題的提出及可行性研究問(wèn)題的提出及可行性研究.2 22.1 問(wèn)題的提出及定義 .22.2 可行性研究 .32.2.1 對(duì)現(xiàn)行文本編輯器的分析 .32.2.2 新文本編輯

8、器的可行性研究分析 .33 3 用戶需求分析用戶需求分析.5 53.1 用戶調(diào)查 .53.2 確定目標(biāo)系統(tǒng)的功能 .54 4 系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)環(huán)境系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)環(huán)境.6 64.1 系統(tǒng)相關(guān)類(lèi)的設(shè)計(jì).64.2 開(kāi)發(fā)語(yǔ)言及其開(kāi)發(fā)環(huán)境 .104.2.1 開(kāi)發(fā)語(yǔ)言概述.104.2.2 Java 開(kāi)發(fā)環(huán)境JDK 的介紹 .124.3 環(huán)境變量的設(shè)置 .134.3.1.環(huán)境變量的作用 .134.3.2 如何設(shè)置環(huán)境變量 .145 5 關(guān)鍵技術(shù)和源代碼的實(shí)現(xiàn)關(guān)鍵技術(shù)和源代碼的實(shí)現(xiàn).16165.1 關(guān)鍵技術(shù)剖析 .165.2 源碼分析 .176 6 系統(tǒng)測(cè)試系統(tǒng)測(cè)試.42426.1 測(cè)試方案 .426.2 測(cè)試

9、項(xiàng)目 .426.3 編輯器截圖演示 .43河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說(shuō)明書(shū) IV致致 謝謝.4444參考文獻(xiàn)參考文獻(xiàn).4545河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說(shuō)明書(shū) 11 1 前前言言Java 可以方便的開(kāi)發(fā) GUI 程序,在 Java 語(yǔ)言提供的 GUI 構(gòu)建工具中,可以分為“組件(component) ”和“容器” (container)兩種。組件有:按鈕,標(biāo)簽,復(fù)選框,單選按鈕,選擇框,列表框,文本框,滾動(dòng)條,畫(huà)布,和菜單等;容器有:程序的啟動(dòng)封面,窗體和對(duì)話框。本設(shè)計(jì)主要是通過(guò)AWT(抽象窗口化工具包)和 Swing 來(lái)實(shí)現(xiàn)功能的。本文本編輯器的設(shè)計(jì),能打開(kāi),編輯和保存 html,jav

10、a,cpp,txt 文件,能夠在文件中進(jìn)行查找和替換,而且支持 java 源文件的編譯與運(yùn)行,前提是機(jī)器上已經(jīng)安裝了 java 虛擬機(jī)并配置好了 java 相關(guān)的環(huán)境變量。此文本編輯器是集代碼編寫(xiě),源代碼編譯和類(lèi)運(yùn)行于一體。河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說(shuō)明書(shū) 22 2 問(wèn)題的提出及可行性研究問(wèn)題的提出及可行性研究2.12.1 問(wèn)題的提出及定義問(wèn)題的提出及定義隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,文本編輯器成為大家必不可少的工具,但是不同的用戶對(duì)文本編輯器有不同的功能需求,所以除了像 office 中的word 還有去 WPS 等大眾文本編輯器,還需要一些帶有一定相關(guān)專(zhuān)業(yè)功能的文本編輯器,可以方便用戶進(jìn)行工

11、作與開(kāi)發(fā)。 1、本設(shè)計(jì)就是針對(duì) java 初學(xué)者所開(kāi)發(fā)的,集源代碼編輯,編譯,運(yùn)行于一體的文本編輯器。2、根據(jù)此文本編輯器的的實(shí)際要求,本系統(tǒng)需要實(shí)現(xiàn)以下功能:3、要求在運(yùn)行該編輯器時(shí),可以直接編輯默認(rèn)的新建文件 File,在左邊的樹(shù)中正在編輯的文件顯示有 File1;4、要求在文本編輯器的右邊的文件文本域用于編輯文字和代碼,右邊中間的文字域時(shí)顯示光標(biāo)的行號(hào),右邊下面的文本域是顯示編譯和運(yùn)行信息;5、要求在窗口頂部設(shè)有菜單欄,分別有File,Option,Advance,Edit,Help;6、要求在菜單欄下面設(shè)有工具欄,分別有打開(kāi)按鈕,新建按鈕,保存按鈕,幫助按鈕,推出按鈕,編譯按鈕,運(yùn)行按

12、鈕,復(fù)制按鈕,剪切按鈕,粘貼按鈕;7、要求能新建,打開(kāi)和保存文件;若是新建文件則將新建文件保存為newFile1.txt,在編輯器左邊樹(shù)中正在編輯的文件顯示為 newFile1.txt,右邊的文件文本域所在的 Tab 標(biāo)簽上顯示的也是 newFile1.txt。8、要求能夠通過(guò)查找功能,在當(dāng)前文件中查找字符串,在彈出的對(duì)話框中輸入所要查找的字符串,點(diǎn)擊確定開(kāi)始查找,找到后顯示高亮;9、要求能夠連接本機(jī)的 java 虛擬機(jī),對(duì)源代碼進(jìn)行編譯及編譯后運(yùn)行河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說(shuō)明書(shū) 32.22.2 可行性研究可行性研究2.2.1 對(duì)現(xiàn)行文本編輯器的分析市場(chǎng)上出現(xiàn)的和用戶所使用的文本編輯器種類(lèi)

13、繁多,功能也是各式各樣,其中有相當(dāng)一部分是很優(yōu)秀的。但是面向 java 初學(xué)者的操作簡(jiǎn)單的,界面友好的,集源代碼編輯,編譯,運(yùn)行于一體的編輯器并不多見(jiàn)。2.2.2 新文本編輯器的可行性研究分析根據(jù)此文本編輯器的使用對(duì)象,新目標(biāo)的提法不盡相同,例如:1、提高工作效率和降低難度;2、提供新的編譯與運(yùn)行處理功能;新編輯器的目標(biāo)確定后,就可以從以下三方面對(duì)能否實(shí)現(xiàn)新目標(biāo)進(jìn)行可行性分析:(1)技術(shù)可行性面向?qū)ο笫且环N新興的程序設(shè)計(jì)方法,或者說(shuō)是一種新的程序設(shè)計(jì)規(guī)范(paradigm),其基本思想是使用對(duì)象、類(lèi)、繼承、封裝、消息等基本概念來(lái)進(jìn)行程序設(shè)計(jì)。從現(xiàn)實(shí)世界中客觀存在的事物(即對(duì)象)出發(fā)來(lái)構(gòu)造軟件系

14、統(tǒng),并且在系統(tǒng)構(gòu)造中盡可能運(yùn)用人類(lèi)的自然思維方式。開(kāi)發(fā)一個(gè)軟件是為了解決某些問(wèn)題,這些問(wèn)題所涉及的業(yè)務(wù)范圍稱(chēng)作該軟件的問(wèn)題域。其應(yīng)用領(lǐng)域不僅僅是軟件,還有計(jì)算機(jī)體系結(jié)構(gòu)和人工智能等。許多程序開(kāi)發(fā)工具,如 java、Visual Basic 6.0、Delphi 等等,都支持面向?qū)ο蟮某绦蜷_(kāi)發(fā)。這些技術(shù)目前已經(jīng)成熟,被廣泛應(yīng)用與各個(gè)領(lǐng)域。運(yùn)用 GUI 中的 awt 和swing 以及相關(guān)的類(lèi)完全可以實(shí)現(xiàn)所要求的功能。因此,其設(shè)計(jì)開(kāi)發(fā)在技術(shù)上是可行的。(2)經(jīng)濟(jì)可行性經(jīng)濟(jì)可行性研究是對(duì)設(shè)計(jì)投入使用后帶來(lái)的經(jīng)濟(jì)效益進(jìn)行估計(jì)。本設(shè)計(jì)河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說(shuō)明書(shū) 4所消耗的物力與財(cái)力不多,關(guān)鍵是思

15、想架構(gòu),設(shè)計(jì)成功后可在互聯(lián)網(wǎng)上供用戶下載。經(jīng)濟(jì)效益與經(jīng)濟(jì)投資是很少的,也達(dá)到收支平衡。(3)運(yùn)行可行性系統(tǒng)設(shè)計(jì)并運(yùn)行于當(dāng)前流行的 Windows 系列操作系統(tǒng),具有 Windows 傳統(tǒng)的操作風(fēng)格,僅要求系統(tǒng)帶有 JVM(java 虛擬機(jī))。此文本編輯器操作簡(jiǎn)單,界面友好,用戶可以立即使用??傊?,系統(tǒng)具有較好的運(yùn)行可行性。綜上所述,開(kāi)發(fā)一個(gè)專(zhuān)門(mén)的 java 文本編輯器是可行的。河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說(shuō)明書(shū) 53 3 用戶需求分析用戶需求分析3.13.1 用戶調(diào)查用戶調(diào)查經(jīng)過(guò)詳細(xì)的調(diào)研,并多次與初學(xué) java 潛在用戶進(jìn)行研討后,首先加深了對(duì) java 文本管理器的的深刻了解,其次,充分熟

16、悉 java 源代碼編輯,編譯和運(yùn)行。3.23.2 確定目標(biāo)系統(tǒng)的功能確定目標(biāo)系統(tǒng)的功能通過(guò)詳細(xì)的用戶調(diào)查,可以基本確定目標(biāo)系統(tǒng)要達(dá)到的目標(biāo)了。需求分析的任務(wù)是確定功能必須完成的工作,也就是對(duì)目標(biāo)系統(tǒng)提出完整、準(zhǔn)確、清晰、具體的要求。在經(jīng)過(guò)多方了解和調(diào)查后,基本清楚了此文本編輯器的功能要求。必須完成的功能如下:(1) 文本新建功能;(2) 文本打開(kāi)功能; (3) 文本保存功能;(4) 字符串查詢功能;(5) 源文件編譯功能;(6) 代碼運(yùn)行功能。河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說(shuō)明書(shū) 64 4 系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)環(huán)境與開(kāi)發(fā)環(huán)境系統(tǒng)設(shè)計(jì)一般分為總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)。經(jīng)過(guò)需求分析階段的工作,已經(jīng)清楚

17、系統(tǒng)必須完成的工作,下面的工作就應(yīng)該是決定“如何做”的問(wèn)題。總體設(shè)計(jì)的基本目的就是“概括地說(shuō)系統(tǒng)應(yīng)該如何實(shí)現(xiàn)?” 。另一方面的主要工作是設(shè)計(jì)軟件的結(jié)構(gòu),即確定系統(tǒng)都由哪些模塊組成及模塊之間的相互關(guān)系。4.14.1 系統(tǒng)相關(guān)類(lèi)的設(shè)計(jì)系統(tǒng)相關(guān)類(lèi)的設(shè)計(jì) 河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說(shuō)明書(shū) 7EditorPack ( );setLocatrion ( );setVisible ( );start ( );setFocusable ( );addKeyListrner ( );FrameaddImpladdImpl(Component comp,Object constraints, int index

18、) 添加指定的子 ComponentgetContentPane() 返回此窗體的contentPane 對(duì)象setLayoutsetLayout(LayoutManager manager)設(shè)置 LayoutManagersetJMenuBarsetJMenuBar(JMenuBar menubar) 設(shè)置此窗體的菜單欄setIconImage(Image image) setDefaultCloseOperationsetDefaultCloseOperation(int operation)設(shè)置用戶在此窗體上發(fā)起 close 時(shí)默認(rèn)執(zhí)行的操作設(shè)置此 frame 要顯示在最小化圖標(biāo)中的圖像

19、removeremove(Component comp) 從該容器中移除指定組件圖 4-1 Editor 繼承了 JFrame 類(lèi)河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說(shuō)明書(shū) 8JComponetJTextComponentJMenuBarJOptionPane JToolBarJTreeJPanelJFileChooserJSplitpaneAbstratButtonJTabbedPaneJScrollPaneJButtonJMenuItemJMenuJTextArea河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說(shuō)明書(shū) 9圖 4-2 是本設(shè)計(jì)中用到的 JComponent 及其擴(kuò)展類(lèi)的總括。ActionListene

20、ractionPerformedactionPerformed(ActionEvent e) 發(fā)生操作時(shí)調(diào)用Act_StartFlashactionPerformedactionPerformed(ActionEvent E_start)Act_StopFlashactionPerformedactionPerformed(ActionEvent E_stop)Act_TimeractionPerformedactionPerformed(ActionEvent E_time)Act_CopyactionPerformedactionPerformed(ActionEvent e_ji9)Ac

21、t_PasteactionPerformedactionPerformed(ActionEvent e_ji11)Act_CutactionPerformedactionPerformed(ActionEvent e_ji10)圖 4-3 本圖顯示復(fù)制,粘貼,剪貼,動(dòng)畫(huà)的顯示停止,啟動(dòng),暫停事件繼承ActionListener 類(lèi)河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說(shuō)明書(shū) 10JFileChoosergetFileViewgetFileView() 返回當(dāng)前的文件視圖getIcongetIcon(File f) 返回此文件或文件類(lèi)型的圖標(biāo),這取決于系統(tǒng)getNamegetName(File f) 返回

22、文件名getSelectedFilegetSelectedFile() 返回選中的文件setCurrentDirectorysetCurrentDirectory(File dir) 設(shè)置當(dāng)前目錄setDialogTitlesetDialogTitle(String dialogTitle) 設(shè)置顯示在 JFileChooser 窗口標(biāo)題欄的字符串FileChooserFilechooser();approveSelection();cancelSelection();圖 4-4 FileChoose 類(lèi)繼承了 JFileChoose 類(lèi);此文件選擇器能夠打開(kāi)和保存文件4.24.2 開(kāi)發(fā)語(yǔ)言及

23、其開(kāi)發(fā)環(huán)境開(kāi)發(fā)語(yǔ)言及其開(kāi)發(fā)環(huán)境4.2.1 開(kāi)發(fā)語(yǔ)言概述Sun 公司在 Java 語(yǔ)言的白皮書(shū)中是這樣定義 Java 的:河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說(shuō)明書(shū) 11Java 是一個(gè)簡(jiǎn)單的、面向?qū)ο蟮?、分布的、健壯的、安全的、與平臺(tái)無(wú)關(guān)的、可移植的、高性能的、多線程的,以及動(dòng)態(tài)的解釋型語(yǔ)言。Java 是一種簡(jiǎn)單的語(yǔ)言。它用到的概念不多,而且多為程序員所熟悉。如果你是一名程序員,掌握 Java 對(duì)你來(lái)說(shuō)是易如反掌的事。即使你沒(méi)有學(xué)過(guò)任何編程語(yǔ)言,學(xué)習(xí) Java 也要比學(xué)習(xí) C+要容易的多。由于 Java 最初是為控制電子產(chǎn)品設(shè)計(jì)的,因此它必須簡(jiǎn)單明了。為了保證這種簡(jiǎn)單性,Java 去掉了 C+中許多復(fù)

24、雜的、冗余的、有二義性的概念,例如操作符重載、多繼承、數(shù)據(jù)類(lèi)型自動(dòng)轉(zhuǎn)換等。為了將程序員從復(fù)雜的內(nèi)存管理的負(fù)擔(dān)中解脫出來(lái),同時(shí)也是為了減少錯(cuò)誤,Java 使用了自動(dòng)內(nèi)存垃圾收集機(jī)制,程序員只要在需要的時(shí)候申請(qǐng)即可,不需要釋放,而由 Java 自己來(lái)收集、釋放內(nèi)存中的無(wú)用的塊。Java 是一種支持分布式操作的程序設(shè)計(jì)語(yǔ)言。使用 Java 提供的 URL 類(lèi),用戶可以象訪問(wèn)本地文件一樣訪問(wèn)網(wǎng)絡(luò)上的對(duì)象,使用非常方便。在客戶機(jī)/服務(wù)器的模式下,Java 還可以將運(yùn)算從服務(wù)器端分散到客戶端,提高系統(tǒng)的效率,避免了服務(wù)器的瓶頸制約。Java 的網(wǎng)絡(luò)類(lèi)庫(kù)支持分布式的編程。Socket 類(lèi)提供可靠的流式網(wǎng)絡(luò)的

25、連接,支持 TCP/IP 協(xié)議。通過(guò)編寫(xiě)協(xié)議句柄,程序員還可以擴(kuò)充 Java 支持的協(xié)議集合。Java 提供非常有效的安全控制。由于 Java 應(yīng)用于網(wǎng)絡(luò)程序的開(kāi)發(fā),因而安全性變的至關(guān)重要。因?yàn)?Java 小程序需要下載到客戶端解釋執(zhí)行,所以,如果沒(méi)有安全控制,就會(huì)給一些網(wǎng)絡(luò)黑客以可乘之機(jī),這對(duì)用戶來(lái)說(shuō)是非常危險(xiǎn)的。所幸的是,Java 的安全機(jī)制可以有效的防止病毒程序的產(chǎn)生、下載程序?qū)Ρ镜匚募到y(tǒng)的破壞,以及網(wǎng)絡(luò)黑客竊取密碼和入侵。Java 是一種非常健壯的語(yǔ)言。因?yàn)樵?Java 中使用了以下手段:自動(dòng)內(nèi)存垃圾收集機(jī)制。Java 自動(dòng)收集無(wú)用的內(nèi)存單元,進(jìn)而防止了由于內(nèi)存泄漏導(dǎo)致的動(dòng)態(tài)內(nèi)存分配

26、問(wèn)題。完善的異常處理機(jī)制,既簡(jiǎn)化了錯(cuò)誤處理任務(wù)和恢復(fù),也增加了程序的可讀性。Java 具有非常好的平臺(tái)無(wú)關(guān)性和可移植性。因?yàn)?Java 最初是為對(duì)電子產(chǎn)河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說(shuō)明書(shū) 12品編程而設(shè)計(jì)的,所以它具有完美的平臺(tái)無(wú)關(guān)性。它使用一種與平臺(tái)無(wú)關(guān)的代碼字節(jié)碼,而不是通常的特定機(jī)器上的機(jī)器碼,由平臺(tái)上的 Java 虛擬機(jī)中的 Java 解釋器解釋執(zhí)行。Java 虛擬機(jī)是免費(fèi)的,在許多平臺(tái)上都有。Java 提供了良好的可移植性。使用 Java 作為編程語(yǔ)言,只要進(jìn)行一次程序開(kāi)發(fā)工作,所開(kāi)發(fā)的程序不需要經(jīng)過(guò)任何改動(dòng),便能在各種平臺(tái)上運(yùn)行。Java 使用兩種方法使 Java 的應(yīng)用程序不依賴(lài)

27、與具體的系統(tǒng):采用基于國(guó)際標(biāo)準(zhǔn)的數(shù)據(jù)類(lèi)型。Java 的原始數(shù)據(jù)類(lèi)型在任何機(jī)器上都是一樣的,例如整型總是 32 位,長(zhǎng)整型總是 64 位等。Java 是一種高性能的語(yǔ)言。 “魚(yú)與熊掌不可兼得” ,通常,健壯性、安全性、平臺(tái)無(wú)關(guān)性、可移植性等方面的提高總是要以犧牲性能為代價(jià)的。Java也不例外,Java 的內(nèi)存管理增加了運(yùn)行時(shí)系統(tǒng)的復(fù)雜性,因?yàn)?Java 運(yùn)行時(shí)系統(tǒng)必須內(nèi)嵌一個(gè)內(nèi)存管理模塊;同樣,Java 程序的解釋執(zhí)行的效率也要低于直接執(zhí)行編譯后的源碼的效率。但是 Java 采用了一些很好的措施來(lái)彌補(bǔ)這些性能上的差距:生成高效的字節(jié)碼。Java 字節(jié)碼的設(shè)計(jì)充分考慮了性能的因素,字節(jié)碼的格式簡(jiǎn)單

28、,解釋器可以生成高效的機(jī)器碼。提供了即時(shí)編譯和嵌入 C 代碼的可選措施。即時(shí)編譯是指在運(yùn)行時(shí)把字節(jié)碼編譯成機(jī)器碼。4.2.2 Java 開(kāi)發(fā)環(huán)境JDK 的介紹在 Sun 公司推出 Java 語(yǔ)言的同時(shí),也推出了 Java 的一系列開(kāi)發(fā)工具,如JDK(Java Developers Kit) 。JDK 是可以從網(wǎng)上免費(fèi)下載的 Java 開(kāi)發(fā)工具集。隨后,其它一些著名的公司也相繼推出了自己的 Java 開(kāi)發(fā)工具,例如Microsoft 公司的 Visual J+,Borland 公司的 JBuilder,IBM 公司的VisualAge for Java,Synmentac 的 Caf 等。本節(jié)中

29、將簡(jiǎn)單的介紹一下 Sun公司的 JDK;至于 Microsoft 公司的 Visual J+,將是本書(shū)其它章節(jié)重點(diǎn)介紹的內(nèi)容。河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說(shuō)明書(shū) 13JDK 是 Sun 公司推出的 Java 開(kāi)發(fā)工具集,由于 Sun 公司是 Java 語(yǔ)言的創(chuàng)始者和 Java 規(guī)范的制定者,所以 JDK 自然是最權(quán)威的 Java 開(kāi)發(fā)工具。您寫(xiě)的Java 程序是否符合 Java 語(yǔ)言規(guī)范的要求,用 JDK 提供的 Java 編譯器一試便知。市場(chǎng)上其它公司的 Java 開(kāi)發(fā)工具有的在某些地方并不完全遵從 Java 語(yǔ)言規(guī)范,例如 Microsoft 公司的 Visual J+,但是 JDK 卻絕

30、對(duì)和 Java 語(yǔ)言規(guī)范保持一致,而且每當(dāng)有新的 Java 語(yǔ)言規(guī)范推出時(shí),就會(huì)有相應(yīng)的 JDK 同時(shí)推出。當(dāng)前 JDK 已經(jīng)推出了其最新版本JDK1.64.34.3 環(huán)境變量的設(shè)置環(huán)境變量的設(shè)置4.3.1.環(huán)境變量的作用 JAVA 程序能夠順利編譯需要兩個(gè)環(huán)境變量,一個(gè)是 PATH(path) ,一個(gè)是 CLASSPATH(classpath) 。那么這兩個(gè)環(huán)境變量代表什么呢?或者說(shuō)究竟在 JAVA 程序編譯中有什么作用呢?這就要涉及到 WINDOWS 的基本知識(shí)了。在WINDOWS 環(huán)境中,每一條能用的指令都保存在硬盤(pán)的“某個(gè)角落” ,比如說(shuō)指令 NOTEPAD(WINDOWS 的記事本指

31、令,在 C:WINNT 目錄下) ,那么在 DOS 命令提示符下直接輸入 NOTEPAD 就可以打開(kāi)記事本了。但是一旦我們把 C:WINNT目錄下的 NOTEPAD.EXE 這個(gè)可執(zhí)行文件移開(kāi)(比如說(shuō)我們現(xiàn)在把它“剪切”到 D 盤(pán)根目錄下)我們?cè)僭?DOS 提示符下直接輸入 NOTEPAD 時(shí)就無(wú)法再打開(kāi)記事本了,但是我們?cè)?DOS 下改變路徑輸入 D:NOTEPAD(或者先輸入 cd D: 在輸入 NOTEPAD 也行)就可以打開(kāi)記事本了。這就是說(shuō)在我們直接輸入 NOTEPAD的時(shí)候,其實(shí)其默認(rèn)路徑就是 C:WINN。假設(shè)我們要運(yùn)行一個(gè) JAVA 程序(hello.java)就要先把它的 c

32、lass 文件移動(dòng)到 JAVA 里的 bin 目錄下 然后打開(kāi) DOS,把路徑改到 JAVA 的 BIN 目錄下 執(zhí)行 java hello.class,一次無(wú)所謂 但是每次都要這樣去做未免太麻煩。還好 WINDOWS 提供了一個(gè) PATH 環(huán)境變量,他的作用就是現(xiàn)在這個(gè)變量的值路徑中去找,如果找到了要運(yùn)行的 EXE 就河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說(shuō)明書(shū) 14運(yùn)行,否則失敗。如果我們把 JAVA 里的 bin 目錄這個(gè)路徑賦給 path 那么下次我在運(yùn)行 java 這個(gè)命令的時(shí)候,即便是直接輸入 DOS 也能夠在 path 變量中找到 JAVA 的 bin 目錄下的 java 指令了。 “假設(shè)

33、我們要運(yùn)行一個(gè) JAVA 程序(hello.java)就要先把它的 class文件移動(dòng)到 JAVA 里的 bin 目錄下” ,為什么要這樣做呢?因?yàn)槲覀冊(cè)谟玫絡(luò)ava hello.class 這條指令的時(shí)候,DOS 不知道 hello.class 這個(gè)文件在哪里,他就先到當(dāng)前目錄中去找,如果找到就運(yùn)行,否則失敗。當(dāng)然,如果說(shuō)hello.java 在 D 盤(pán)根目錄下,你也可以用 java D:hello.class 這條指令來(lái)運(yùn)行,但是每次這樣做也確實(shí)夠麻煩。WINDOWS 就提供了這樣一個(gè)環(huán)境變量classpath,如果沒(méi)有就應(yīng)該新建一個(gè)。我們把 D:這個(gè)路徑賦值給classpath,那么下次

34、在運(yùn)行 java hello.java 的時(shí)候就先在當(dāng)前目錄中到,如果找到就運(yùn)行,如果找不到就在 classpath 的值路徑下去找,找到就運(yùn)行,找不到就失敗。以上闡述了 path 和 classpath 兩個(gè)環(huán)境變量的作用,如果設(shè)置好了。java 的編譯和運(yùn)行就基本上沒(méi)什么問(wèn)題了。4.3.2 如何設(shè)置環(huán)境變量Windows 下 JAVA 環(huán)境變量的設(shè)置祥解:Windows 下 JAVA 用到的環(huán)境變量主要有 3 個(gè),JAVA_HOME、CLASSPATH、PATH。下面逐個(gè)分析。JAVA_HOME 指向的是 JDK 的安裝路徑,如 x:JDK_1.4.2,在這路徑下你應(yīng)該能夠找到 bin、l

35、ib 等目錄。值得一提的是,JDK 的安裝路徑可以選擇任意磁盤(pán)目錄,不過(guò)建議你放的目錄層次淺一點(diǎn),如果你放的目錄很深,比如x:XXXXXXxxxxxXXXXxxxxXXXXxxxxXXXXxxx設(shè)置方法如下:JAVA_HOME=x:JDK_1.4.2PATH 環(huán)境變量原來(lái) Windows 里面就有,你只需修改一下,使他指向 JDK河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說(shuō)明書(shū) 15的 bin 目錄,這樣你在控制臺(tái)下面編譯、執(zhí)行程序時(shí)就不需要再鍵入一大串路徑了。設(shè)置方法是保留原來(lái)的 PATH 的內(nèi)容,并在其中加上%JAVA_HOME%bin (注,如果你對(duì) DOS 批處理不了解,你可能不明白%引起來(lái)的內(nèi)容是

36、什么意思;其實(shí)這里是引用上一步設(shè)定好的環(huán)境變量 JAVA_HOME,你寫(xiě)成 x:JDK_1.4.2也是可以的;你可以打開(kāi)一個(gè)控制臺(tái)窗口,輸入 echo %JAVA_HOME%來(lái)看一下你的設(shè)置結(jié)果) :PATH=%JAVA_HOME%bin;%PATH%同樣,%PATH%是引用以前你設(shè)置的 PATH 環(huán)境變量,你照抄以前的值就行了。CLASSPATH 環(huán)境變量我放在最后面,是因?yàn)橐院竽愠霈F(xiàn)的莫名其妙的怪問(wèn)題 80%以上都可能是由于 CLASSPATH 設(shè)置不對(duì)引起的,所以要加倍小心才行。CLASSPATH=.;%JAVA_HOME%libtools.jar。首先要注意的是最前面的.;,這個(gè)是告訴

37、 JDK,搜索 CLASS 時(shí)先查找當(dāng)前目錄的 CLASS 文件為什么這樣搞,這是由于 LINUX 的安全機(jī)制引起的,LINUX 用戶很明白,WINDOWS 用戶就很難理解(因?yàn)?WINDOWS 默認(rèn)的搜索順序是先搜索當(dāng)前目錄的,再搜索系統(tǒng)目錄的,再搜索 PATH 環(huán)境變量設(shè)定的)。為什么 CLASSPATH 后面指定了 tools.jar 這個(gè)具體文件?不指定行不行?這個(gè)是由 java 語(yǔ)言的 import 機(jī)制和 jar 機(jī)制決定的。具體的設(shè)定方法: win2kxp 用戶右鍵點(diǎn)擊我的電腦-屬性-高級(jí)-環(huán)境變量,修改下面系統(tǒng)變量那個(gè)框里的值就行了。win9x 用戶修改 autoexec.ba

38、t 文件,在其末尾加入: set JAVA_HOME=x:JDK_1.4.2set PATH=%JAVA_HOME%bin;%PATH%set CLASSPATH=.;%JAVA_HOME%libtools.jar河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說(shuō)明書(shū) 165 5 關(guān)鍵技術(shù)和源代碼的實(shí)現(xiàn)關(guān)鍵技術(shù)和源代碼的實(shí)現(xiàn)5.15.1 關(guān)鍵技術(shù)剖析關(guān)鍵技術(shù)剖析JFrame 類(lèi)的 setJMenuBar 的方法為窗口添加菜單欄 JMenuBar,JMenuBar的 add 方法為菜單欄添加菜單 JMenu,JMenu 的 add 方法為菜單添加菜單項(xiàng)JMenuItem,它們之間的關(guān)系是樹(shù)形關(guān)系。需要為每個(gè)菜單項(xiàng)添

39、加事件處理器,當(dāng)單擊菜單項(xiàng)時(shí),觸發(fā)事件。JToolBar 為工具欄,可以在工具欄中添加按鈕或者標(biāo)簽。JButton 的setToolTipText 方法設(shè)置按鈕的提示信息,當(dāng)鼠標(biāo)停留在按鈕上若干時(shí)間后,會(huì)顯示提示信息。分隔窗格 JSplitPane 類(lèi)用于分隔兩個(gè)組件,可以由用戶交互的調(diào)整組件的大小。根據(jù)分隔條的方向,把 JSplitPane 分成有兩種:VERTICAL_SPLIT 表示水平分隔條,HORIZONTAL_SPLIT 表示垂直分隔條。setDividerlocation 方法設(shè)置分隔條的坐標(biāo)。JTree 類(lèi)實(shí)現(xiàn)樹(shù)結(jié)構(gòu),樹(shù)中有多個(gè)節(jié)點(diǎn),但是且只有一個(gè)根節(jié)點(diǎn)。通用的節(jié)點(diǎn)類(lèi)型為 De

40、faultMutableTreeNode,它的 add 方法為節(jié)點(diǎn)添加子節(jié)點(diǎn)。JTextArea 文本域顯示文件內(nèi)容,將它放置在 JScrollPane 中,使其具備滾動(dòng)條。setCareColor 方法設(shè)置插入光標(biāo)的顏色;addCareListener 方法為文本域設(shè)置光標(biāo)事件處理器,當(dāng)光標(biāo)位置改變時(shí)觸發(fā)該類(lèi)事件;getText 和setText 方法獲得和設(shè)置文本域的內(nèi)容;select 方法高亮顯示文本域中指定的文本;setCaretPositin 方法獲得光標(biāo)在文本域中的位置;getLineOfOffset方法獲得指定位置在文本域中的行號(hào);getLineStartOffset 方法獲取指

41、定行的第一個(gè)字符在文本域中的位置;getLineEndOffset 方法獲取指定行的最后一個(gè)字符在文本去中的位置。JTabbedPane 實(shí)現(xiàn)多頁(yè)面的管理,每個(gè)頁(yè)面有一個(gè)標(biāo)簽。addTab 方法添加頁(yè)面;addChangeListener 方法設(shè)置頁(yè)面切換事件處理器;setSelectedIndex方法設(shè)置選擇頁(yè)面編號(hào);getSelectendIndex 方法獲取被選擇的頁(yè)面的編號(hào);河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說(shuō)明書(shū) 17setTitleAt 方法設(shè)置指定頁(yè)面標(biāo)簽;getTitleAt 方法獲取指定頁(yè)面的標(biāo)簽。組件的 addKeyListener 方法為組件注冊(cè)鍵盤(pán)事件管理器,鍵盤(pán)事件管理器必

42、須實(shí)現(xiàn) KeyListener 接口,或者繼承 KeyAdapter,keyPressed 方法處理按鍵事件,參數(shù)類(lèi)型為 keyEvent,KeyEvent 的 getKeyCode 方法可以獲得備按下的鍵的代碼;isControlDown 方法判斷 Ctrl 鍵是否被按下;isAltDown 方法判斷 Alt 鍵是否被按下。JFileChoose 文件選擇器能夠打開(kāi)和保存文件,提交選擇時(shí)approveSelection 方法被調(diào)用,取消選擇時(shí) cancelSelection 方法被調(diào)用;getCurrentDirectory 方法獲得文件選擇器當(dāng)前目錄,getSelectedFile 方法獲

43、得文件選擇器選擇的文件。JOptionPane 用于彈出標(biāo)準(zhǔn)的對(duì)話框,類(lèi)型有很多種。showConfirmDialog 方法彈出確認(rèn)信息對(duì)話框,要求用戶確認(rèn)或者取消;showMessageDialog 方法彈出提示信息提示框;showInputDialog 方法彈出輸入信息對(duì)話框,要求用戶輸入信息。在編譯和運(yùn)行 Java 程序時(shí),需要調(diào)用本地的 java 和 javac 命令,通過(guò)Runtime 的 exec 方法可以調(diào)用本地命令。5.25.2 源碼分析源碼分析(1) Editor 類(lèi)/* * 一個(gè)簡(jiǎn)單的文本編輯器,能夠編輯 html、java、cpp、txt 文件, * 并支持 java 的

44、編譯與運(yùn)行 */public class Editor extends JFrame /*菜單欄、菜單和菜單項(xiàng)*/JMenuBar menuBar = new JMenuBar();河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說(shuō)明書(shū) 18JMenu fileMenu = new JMenu(File);JMenu optionMenu = new JMenu(Option);JMenu advanceMenu = new JMenu(Advance);JMenu helpMenu = new JMenu(Help);JMenu editMenu = new JMenu(Edit);JMenuItem newM

45、enuItem = new JMenuItem(new);JMenuItem openMenuItem = new JMenuItem(Open);JMenuItem saveMenuItem = new JMenuItem(Save);JMenuItem exitMenuItem = new JMenuItem(exit);JMenuItem findMenuItem = new JMenuItem(Find);JMenuItem findNextMenuItem = new JMenuItem(Find Next);JMenuItem replaceMenuItem = new JMenu

46、Item(Replace);JMenuItem compileMenuItem = new JMenuItem(Compile);JMenuItem buildMenuItem = new JMenuItem(Build);JMenuItem stopFlashMenuItem = new JMenuItem(Stop Flash);JMenuItem startFlashMenuItem = new JMenuItem(Start Flash);JMenuItem helpMenuItem = new JMenuItem(Help);JMenuItem copyMenuItem = new

47、JMenuItem(Copy);JMenuItem cutMenuItem = new JMenuItem(Cut);JMenuItem pasteMenuItem = new JMenuItem(Paste);/*文件內(nèi)容的顯示*/用多個(gè)文本域存放多個(gè)文件內(nèi)容,文本域放在 JScrollPane 里/而 JScrollPane 放在 JTabbedPane 中,這就是一個(gè)多頁(yè)面的布局/多個(gè)文本域,每個(gè)文本域顯示一個(gè)文件的內(nèi)容JTextArea fileTextAreas = new JTextArea10;/編譯或者運(yùn)行時(shí)的控制臺(tái)信息河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說(shuō)明書(shū) 19JTextArea

48、 consoleTextArea = new JTextArea();JScrollPane fileScrollPanes = new JScrollPane10;JScrollPane consoleScrollPane;/多個(gè)文本域放在不同 tab 里JTabbedPane fileTabbedPane = new JTabbedPane();/*工具欄以及工具欄上的按鈕*/JToolBar toolBar = new JToolBar();JButton openButton = new JButton(new ImageIcon(loadImage(image/open.gif);J

49、Button newButton = new JButton(new ImageIcon(loadImage(image/new.gif);JButton saveButton = new JButton(new ImageIcon(loadImage(image/save.gif);JButton helpButton = new JButton(new ImageIcon(loadImage(image/help.gif);JButton exitButton = new JButton(new ImageIcon(loadImage(image/close.gif);JButton co

50、mpileButton = new JButton(new ImageIcon(loadImage(image/compile.gif);JButton buildButton = new JButton(new ImageIcon(loadImage(image/build.gif);JButton copyButton = new JButton(new ImageIcon(loadImage(image/copy.gif);JButton cutButton = new JButton(new ImageIcon(loadImage(image/cut.gif);JButton past

51、eButton = new JButton(new ImageIcon(loadImage(image/paste.gif);/該文本域顯示當(dāng)前光標(biāo)在當(dāng)前文本域中的行號(hào)JTextArea showLineNoTextArea = new JTextArea();/對(duì)話框窗體,程序中所有對(duì)話框都顯示在該窗體中JFrame dialogFrame = new JFrame();/*文件名以樹(shù)型結(jié)構(gòu)在左邊顯示*/JTree tree;DefaultMutableTreeNode root;DefaultMutableTreeNode nodes = new DefaultMutableTreeNod

52、e10;/*組件之間的分隔欄*/河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說(shuō)明書(shū) 20JSplitPane leftRightSplitPane;JSplitPane lineNoConsoleSplitPane;JSplitPane treeFlashSplitPane;JSplitPane tabbedLineNoSplitPane;/*文件選擇、存儲(chǔ)相關(guān)*/文件過(guò)濾器Filter fileFilter = new Filter();/文件選擇器FileChooser fileChooser = new FileChooser();/ 文件讀寫(xiě)控制,0 表示文件選擇器讀文件,1 文件選擇器標(biāo)示寫(xiě)文件in

53、t fileChooser_control = 0;FileWriter fileWriter;/ tabbedPane 中 tab 頁(yè)的當(dāng)前數(shù)量int tb = 1;int find_control = 0;/文本域的控制器,指向當(dāng)前操作的文本域int textAreas_control = 0;/當(dāng)前文本域中的文本String currentTextInTextArea;/標(biāo)志文件是否為新建的,如果是新建的文件,為 trueboolean newFileFlags = new boolean10;/存放打開(kāi)文件所在的目錄String directory = new String10;/*查

54、找替換相關(guān)*/正在查找的字符串及其長(zhǎng)度String findWord;河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說(shuō)明書(shū) 21int fingWordLength;/保存正在查找的字符串在文本域中的文本的位置int findIndex;/被替換的文本的長(zhǎng)度int replaceLength = 0;/*用于顯示 Flash 的控制器*/JLabel flashLabel = new JLabel(new ImageIcon(loadImage(image/Juggler0.gif);Timer timer = new Timer(100, new Act_timer();int timerControl =

55、0;/*幫助相關(guān)*/Font font = new Font(Courier, Font.TRUETYPE_FONT, 14);JTextArea helpTextArea = new JTextArea();JFrame helpFrame = new JFrame(Help);/構(gòu)造函數(shù)public Editor() super(文本編輯器);/為窗體添加鍵盤(pán)事件處理器/下面這一行非常重要,表示窗體能夠接受焦點(diǎn)。/如果沒(méi)有這一句,按鍵盤(pán)會(huì)無(wú)效。this.setFocusable(true);this.addKeyListener(new MyKeyListener();/為窗體添加窗口事件

56、處理器this.addWindowListener(new WindowListener();/初始化init();setLocation(200, 200);河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說(shuō)明書(shū) 22setVisible(true);pack();/初始時(shí)啟動(dòng)動(dòng)畫(huà)timer.start();該類(lèi)是編輯器的主類(lèi)。init 方法初始化編輯器上的所有控件。首先初始化 10 個(gè)文本域,表示該編輯器能同時(shí)編輯 10 個(gè)文件,并構(gòu)建 10 個(gè)默認(rèn)的樹(shù)節(jié)點(diǎn)DefaultMutableTreeNode 對(duì)象。初始化界面左邊的 JTree,設(shè)置它的根節(jié)點(diǎn)為“正在編輯的文件” ,使用 DefaultMutable

57、TreeNode 的 add 方法為根節(jié)點(diǎn)添加一個(gè)子節(jié)點(diǎn),表示編輯器初始狀態(tài)時(shí)時(shí)新建一個(gè)文件。JTree 的 setEditable方法設(shè)置樹(shù)不可編輯。 初始化控制臺(tái)的文本域 consoleTextArea,用于輸出編譯和運(yùn)行 Java 的信息。將控制臺(tái)文本域放置在一個(gè) JScrollPane 內(nèi),使得他具有滾動(dòng)條。 初始化顯示當(dāng)前光標(biāo)所在行數(shù)的文本域 showLineNoTextArea,當(dāng)用戶移動(dòng)編輯器的光標(biāo)時(shí),在該文本域中顯示光標(biāo)行數(shù)會(huì)跟著發(fā)生變化。通過(guò)setEnabled 方法使得它不可編輯。 初始化菜單,包括如下幾個(gè)菜單:“File”,“Option”,“Advance”,“Help

58、”,“Edit” 。每個(gè)菜單下都設(shè)置多個(gè)菜單項(xiàng)。 初始化工具欄,包括如下幾個(gè)工具項(xiàng):“New”,“Open”,“Save”,“Exit”,“Help”,“Complie”,“Build”,“Copy”,“Cut”,“Paste” 。通過(guò) JButton 的 setToolTipText 方法為工具項(xiàng)設(shè)置提示信息,當(dāng)用戶鼠標(biāo)停留在按鈕上時(shí),顯示提示信息。將各大組件用 JSplitPane 組織起來(lái),使得組件之間的大小可以任意的調(diào)節(jié)。最后把這些組件都放在窗口中。initHelp 方法初始化幫助信息。以表格的形式顯示編輯器的快捷鍵信息,河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說(shuō)明書(shū) 23使用了 JTable 類(lèi)

59、實(shí)現(xiàn)表格,表格的列名是一個(gè)字符串?dāng)?shù)組,表格的數(shù)據(jù)是一個(gè)二維數(shù)組。helpTextArea 文本域顯示使用編輯器全部功能需要做的配置。exitEdior 方法退出編輯器。退出前通過(guò) JOptionPane 的showXonfirmDialog 方法彈出“確認(rèn)退出”的對(duì)話框,當(dāng)用戶選擇JOptionPane.YES_OPTION 時(shí)才真正退出。loadImage 方法加載圖片。根據(jù)圖片名,使用 Class 的 getResource 方法獲得圖片的 URL,通過(guò) getContent 方法打開(kāi) URL,獲得圖片的輸入流,通過(guò)組件的 createImage 方法,把輸入流構(gòu)造成一個(gè) Image 對(duì)象

60、。(2) MyKeyListener 類(lèi)* 鍵盤(pán)事件處理器 */public class MyKeyListener extends KeyAdapter / 覆蓋父類(lèi)的 keyPressed 方法,處理鍵被按下時(shí)的事件。public void keyPressed(KeyEvent e) / 按 F12 打開(kāi)文件if (e.getKeyCode() = KeyEvent.VK_F12)(new Act_OpenFile().actionPerformed(null);/ 按 Ctrl 加 S 鍵保存文件else if (e.isControlDown() & e.getKeyCode() =

61、 KeyEvent.VK_S)(new Act_SaveFile().actionPerformed(null);/ 按 Alt 鍵查找else if (e.isAltDown()(new Act_Find().actionPerformed(null);河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說(shuō)明書(shū) 24/ 按 F3 查找下一個(gè)else if (e.getKeyCode() = KeyEvent.VK_F3)(new Act_FindNext().actionPerformed(null);/ 按 F4 替換else if (e.getKeyCode() = KeyEvent.VK_F4)(new Ac

62、t_Replace().actionPerformed(null);/ 按 Ctrl 加 N 新建文件else if (e.isControlDown() & e.getKeyCode() = KeyEvent.VK_N)(new Act_NewFile().actionPerformed(null);/ 按 Ctrl 加 E 退出編輯器else if (e.isControlDown() & e.getKeyCode() = KeyEvent.VK_E)(new Act_ExitEditor().actionPerformed(null);/ 按 F5 運(yùn)行 Java 程序else if (

63、e.getKeyCode() = KeyEvent.VK_F5)(new Act_Build().actionPerformed(null);/ 按 F9 編譯 Java 源代碼else if (e.getKeyCode() = KeyEvent.VK_F9)(new Act_Compile().actionPerformed(null);/ 按 Ctrl 加 H 顯示幫助else if (e.isControlDown() & e.getKeyCode() = KeyEvent.VK_H)河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說(shuō)明書(shū) 25(new Act_Help().actionPerformed(

64、null);/*該類(lèi)用于處理鍵盤(pán)事件,繼承 KeyAdpter。覆蓋了 KeyAdapter 的 keyPressed 方法,處理鍵盤(pán)被按下的事件,參數(shù)為KeyEvent 類(lèi)型。通過(guò) KeyEvent 的 getKeyCode 方法獲得被按下鍵盤(pán)的碼,isControlDown 方法判斷 Ctrl 鍵是否被按下,isAltDown 方法判斷 Alt 鍵是否被按下。根據(jù)不同的按鍵組合,調(diào)用不同的方法去處理。(3) FileChoose 類(lèi)/* * 文件選擇器 */class FileChooser extends JFileChooser public FileChooser() /文件選擇器默

65、認(rèn)位置為當(dāng)前文件夾super(./);/* * 提交選擇 */public void approveSelection() String filename = null;/fileChooser_control = 0 表示現(xiàn)在是打開(kāi)文件,需要讀if (fileChooser_control = 0) 河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說(shuō)明書(shū) 26/打開(kāi)文件時(shí),在左邊的樹(shù)中添加一個(gè)節(jié)點(diǎn)root.add(nodestb);remove(tree);tree = new JTree(root);tree.setBackground(new Color(70, 80, 91);treeFlashSplit

66、Pane.setRightComponent(tree);treeFlashSplitPane.setDividerLocation(120);/ 新建一個(gè) tab 頁(yè),用于裝新打開(kāi)的文件fileTabbedPane.addTab(File + (tb + 1), fileScrollPanestb);fileTabbedPane.setSelectedIndex(tb);/將當(dāng)前文本域設(shè)置到新打開(kāi)的文件上textAreas_control = tb;tb+;/獲取待打開(kāi)的文件名filename = fileChooser.getSelectedFile().getName();/獲取待打開(kāi)的文件所在的目錄,將目錄保存至數(shù)組,這樣在保存文件的時(shí)候,能夠?qū)⑽募4娴侥夸浿衐irectorytextAreas_control = fileChooser.getCurrentDirectory().toString();fileTextAreastextAreas_control.setText(null);try /將文件內(nèi)容顯示到文本域中String str;BufferedReade

展開(kāi)閱讀全文
溫馨提示:
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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!