版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、代碼編輯器的java實現(xiàn)摘 要如果我們把不同的程序開發(fā)人員比作三國演義中的各路諸侯大將的話,那么代碼編輯器絕對可以稱之我們手中的神兵利器。對于每個程序猿來說,內(nèi)心的深處都想有一把自己的“青龍偃月刀”和屬于自己的一個代碼編輯器。我也有這個想法,我也想自己寫一個代碼編輯器來滿足我的內(nèi)心深處。所以這次java的課程作業(yè)我選擇了這個題目!關鍵詞:java; 代碼編輯器; 關鍵字變色; 編譯和運行 前 言通過一學期的java學習,我對java的理論知識有了一些了解。但是,只有理論聯(lián)系實際才能更好的掌握理論,所以這次java課程設計我選擇了java程序編輯器這個課題,希望可以鍛煉自己的動手能力。我上交給老
2、師您的代碼是我參考的網(wǎng)上的一個牛人寫的代碼,并在他的代碼上進行了功能的增加,至于我增加了多少功能,我會論文的附錄中給出詳細的對比。 1. 軟件的定義編寫一個界面像windows系統(tǒng)的記事本的代碼編輯器,功能比記事本更強大(針對某一方面)具備以下功能: 打開、保存文件功能; 能夠識別java中的關鍵字并能將關鍵字以高亮的形式顯示出來; 能夠批量的刪除代碼中的注釋; 能通過按下按鈕調(diào)用dos窗口; 能編譯和運行java程序; 能夠檢查括號是否匹配。 2. 開發(fā)環(huán)境ide: eclipsejdk: jdk-7u45-windows-x64os: windows 7 x643. 代碼的詳細說明主界面:
3、syntaxcolor.v4包中的demoframe.java文件,主界面就是一個frame,然后在上面加上一個菜單欄,一個工具欄和兩個panel,一個panel里面放著jtextpane,另一個里面放著一個幾個jlable,用來顯示當前鼠標是在第幾行,第幾列,該panel放在frame最下面。菜單欄 :總共有3個jmenu,一個是文件,一個是編輯,一個是幫助。3個菜單里面各有下拉菜單。文件jmenu有2個jmenuitem分別為openmenuitem、exitmenuitem,編輯jmenu有2個jmenuitem分別為cutmentitem、pastemenuitem,幫助jmenu有一
4、個jmenuitem是aboutmenuitem用來顯示代碼編輯器的相關的信息。工具欄:從左到右分別為打開文件、新建文件,保存、批量去除注釋、調(diào)用dos窗口、編譯執(zhí)行和運行java程序、括號的匹配。下面詳細的介紹每個工具欄的按鈕打開文件按鈕: 此時選擇打開窗口可以看到的test.java程序。代碼的實現(xiàn):創(chuàng)建一個bufferedreader 類型的br來讀取從打開文件的對話框中選擇的文件,讀取到panel1中的jtextpane中。新建文件按鈕:說明:如果jtextpane中有字符的話(即代碼編輯區(qū)有字),先讓用戶保存,再新建一個新的jtextpane(但是我在實現(xiàn)的時候遇到了問題了,網(wǎng)上的文
5、本編輯器大部分是用jtextarea來實現(xiàn)的,而不是jtextpane來實現(xiàn)的,在jtextpane中沒有jtextarea里面的對應的方法,而且我在網(wǎng)上沒有找到了好的解決方案,所以我的做法是把按下新建按鈕后把當前jtextpane的清空。保存按鈕:代碼的實現(xiàn)定義一個bufferedwriter類型的bw和filewriter類型的fw通過bw把字符寫到fw對應的文件中去。對應代碼中的filesava()函數(shù)和filesavaas()函數(shù)。批量去除注釋代碼的實現(xiàn):是通過將當前的文件保存到默認的路徑中去,先將代碼中的注釋去除,通過將去除到注釋的代碼保存當前文件的系統(tǒng)目錄下,再用打開文件操作來把去
6、除注釋的代碼重新讀入jtextpane中去。在文件的保存路徑下,會產(chǎn)生一個“文件名”+“.bak”的文件(該文件為沒有注釋的文件),這樣可以用來批量的刪除注釋,并保存在對應文件名的.bak文件中dos窗口的調(diào)用通過組合使用java提供的runtime類和process類的方法實現(xiàn)在java中調(diào)用dos命令,因為我自己在編寫java的代碼的時候,寫好了要按win+r按鍵時還要出入cmd命令,我感覺特別的繁瑣,于是我寫了這個功能,通過一個按鈕就能調(diào)用出dos窗口,方便了用戶的使用。對應于compile.java文件。編譯和運行對于剛寫的代碼要進行編譯和運行的,我的策略是通過先對文件進行保存,就在這
7、個時候來獲取到保存文件的路徑以及文件名等信息。然后就是通過通過組合使用java提供的runtime類和process類的方法實現(xiàn)在java中調(diào)用dos命令javac 文件名,編譯成功后就會自動的運行,會彈出一個frame來顯示指定的屏幕輸出,其實這個的實現(xiàn)是通過用戶本地的jdk來實現(xiàn)的,彈出的frame是把dos窗口的內(nèi)容讀入進去在顯示出來!括號的匹配我們在寫代碼的時候經(jīng)常會出現(xiàn)多一個多括號少一個括號,有時候編譯器可能會給出一條我們不認識的錯誤,這個時候我們會花費大量的時間來檢查錯誤,所以我就想我的代碼編輯器中要有這個功能。在代碼的實現(xiàn)上是通過定義一個棧將是括號的左邊加入棧,如果掃描到括號的右
8、面就把對應的括號出棧,到最后如果棧空,則總個括號匹配成功,如果棧不空則括號匹配不成功,并用紅色將其標出。課程設計總結(jié)本次課程設計,讓我獲益匪淺,不僅更深入的了解java這門學科,更使自己有了繼續(xù)探索的興趣。對于個人而言,在程序設計的過程中,我深感“認真嚴謹”這個詞的重要性,一點點小的馬虎,便會導致整個程序不能正常運行。在今后的學習中,我定將“認真嚴謹時刻作為自的謹言。與此同時,本小組成員的互幫互助,讓我體會到了團結(jié)的力量,而更讓人難以忘懷的是在熱烈討論問題時,那激情橫溢的場面。總之,此次課程設計在我的學生生涯中啟上了至關重要的作用。最后,真誠的感謝汪世元和我們機器人實驗室的學長和學姐們的幫助。
9、選題的時候,我一開始也不知道要寫什么好,想了好久后決定做一個代碼編輯器,因為我們平常我們在用代碼編輯器的時候,經(jīng)常覺得代碼的編輯器沒有按照自己的習慣,覺得很變扭,再給加上覺得能做出一個代碼編輯器很牛,也想在自己的大學里面能做出一個拿的出手的小程序,在同學們之間能炫耀一下,在網(wǎng)上也看到很多網(wǎng)友做了很多不錯的小程序,然后放到自己的博客空間上,然后會有很多人在下面評價說,樓主好牛!為了滿足我自己的小的虛榮心,我就選擇了一個比較難的(我個人認為的)的代碼編輯器。在編寫代碼編輯器的過程中,我學到了很多東西,由于這部分老師上課講的不多,只能靠自己的從網(wǎng)上一點一點的自學,一開始遇到了很多困難,很多東西都看不
10、懂,而且也沒有人跟你講。我有一段時間萌發(fā)了換個簡單點的題目,但是后來想做一個在同學中拿的出手的小程序,于是我克服了困難。下面我來講下我在編寫程序時遇到的問題,開始我上網(wǎng)看了很多文本編輯器,它們大部分是用jtextarea來實現(xiàn)的,而且它們都沒有實現(xiàn)關鍵字的變色,后來為了實現(xiàn)關鍵字變色的這個難題,我上網(wǎng)找了很久,就找到了一個人用java實現(xiàn)了,他使用的是jtextpane并非我們在網(wǎng)上常見的jtextarea,后來查閱了很多資料后才得知jtextarea是什么沒有實現(xiàn)關鍵字變色的(在jtextarea中沒有辦法實現(xiàn)一部分字體以特殊的顏色顯示出來),后來我就采用了jtextpane。就在我采用了j
11、textpane繼續(xù)往下寫的時候遇到了困難第一個困難是我jtextpane沒有提供像jtextarea中獲取行號和列號的對應函數(shù)。為了顯示行號與列號,我又上網(wǎng)查資料,自己寫了getrow()和getcolumn()函數(shù)來返回當前光標對應的行數(shù)和列數(shù)。我的這個小程序在對文字的處理方面可能很不如很多的網(wǎng)上可以搜索到的文本編輯器,因為代碼是我一個人寫的,在加上期末考試的臨近,時間越來越緊張,在加網(wǎng)上對jtextpane的資料少于jtextarea的,所以在這個地方我做的不是很好。為了實現(xiàn)主要的功能我放棄了對一些常規(guī)的記事本的替換等操作。我想了一下如果一個代碼編輯器不能編輯那怎么能叫代碼編輯器,后來我想到可以利用本機的jdk來做一個假的編譯器,上面有編譯和運行的按鈕,但在實現(xiàn)是利用用戶自己的本機安裝jdk來編譯源代碼。由于我個人的水平有限和時間有限,代碼中肯定會有一些bug。我會在后來的時
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 洗滌劑的課程設計
- 家居建材行業(yè)銷售員培訓心得
- 班級心理健康活動的設計計劃
- 【八年級下冊歷史】第1課 中華人民共和國成立 同步練習
- 農(nóng)業(yè)行業(yè)話務員工作心得
- 化工行業(yè)銷售工作總結(jié)
- 2024年秋季開學第一課教案
- 2024年萍鄉(xiāng)衛(wèi)生職業(yè)學院單招職業(yè)技能測試題庫標準卷
- 2024年牛郎織女教案 (一)
- 2025屆武威市高三語文(上)期末聯(lián)考試卷及答案解析
- 護理人才梯隊建設規(guī)劃方案
- 睡眠區(qū)布局設計打造舒適宜人的睡眠環(huán)境
- 建筑設計行業(yè)項目商業(yè)計劃書
- 慢性病防治健康教育知識講座
- 骶尾部藏毛疾病診治中國專家共識(2023版)
- 【高新技術企業(yè)所得稅稅務籌劃探析案例:以科大訊飛為例13000字(論文)】
- 幽門螺旋桿菌
- 智慧農(nóng)業(yè)利用技術提高農(nóng)業(yè)可持續(xù)發(fā)展的方案
- 制冷壓縮機安全操作規(guī)程范文
- 初中歷史考試試題答題卡模版
- 《草圖大師建?!肥谡n計劃+教案
評論
0/150
提交評論