Java課程設(shè)計(jì)報(bào)告 加密和解密.doc
《Java課程設(shè)計(jì)報(bào)告 加密和解密.doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《Java課程設(shè)計(jì)報(bào)告 加密和解密.doc(22頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、目 錄: 前 言 ..................................................................................................................1 一、題目分析 .........................................................................................................2 1.1 課程設(shè)計(jì)的要求和內(nèi)容(包括原始數(shù)據(jù)、技術(shù)要求、工作要求) ..........................
2、....2 1.2 團(tuán)隊(duì)任務(wù)分析 2 1.3 相關(guān)知識(shí)介紹 .........................................................................................................................2 二、概要設(shè)計(jì) .........................................................................................................3 2.1 抽象數(shù)據(jù)類(lèi)型的定義 ..................
3、....................................................................................3 2.2 各程序模塊之間的層次(調(diào)用)關(guān)系 ...............................................................................4 三、詳細(xì)設(shè)計(jì) .........................................................................................................
4、5 3.1 程序流程圖 ...................................................................................................................5 3.2 圖形用戶(hù)界面模塊 .........................................................................................................6 3.3 加密操作模塊 ........................................
5、.........................................................................7 3.4 解密操作模塊 .................................................................................................................7 3.5 文件保存模塊 ........................................................................................
6、.........................7 3.6 文件選擇模塊 ................................................................................................................8 四、調(diào)試分析 ....................................................................................................................9 4.1 對(duì)設(shè)計(jì)與實(shí)現(xiàn)的回顧討論和分析 ....
7、.............................................................................10 4.2 算法的時(shí)空分析 ...........................................................................................................11 4.3 經(jīng)驗(yàn)和體會(huì) ........................................................................................
8、...........................12 五、測(cè)試結(jié)果 .......................................................................................................12 5.1 加密 .............................................................................................................................12 5.2 解密 ...............
9、..............................................................................................................15 六、主要參考資料 ..............................................................................................16 七、附錄 ............................................................................
10、..................................16 課程設(shè)計(jì)說(shuō)明書(shū)用紙 - 1 - 前 言 隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,人們的個(gè)人信息、網(wǎng)絡(luò)間的文件傳遞、電子商 務(wù)等方面都需要大力的保護(hù),文件加密技術(shù)也就隨之產(chǎn)生。文件的加密主要是 由加密算法實(shí)現(xiàn),加密算法有多種,常見(jiàn)的有 RSA、DES、MD5 等。但是這些算 法雖然原理簡(jiǎn)單,但具體實(shí)現(xiàn)起來(lái)卻非常繁瑣復(fù)雜,故而本程序設(shè)計(jì)對(duì)文件的 加密使用的是最基礎(chǔ)的異或加密算法。 Java 語(yǔ)言具有簡(jiǎn)單、安全、可移植、面向?qū)ο?、健壯、多線程、體系結(jié)構(gòu) 中立、解釋執(zhí)行、高性能、分布式和動(dòng)態(tài)等主要特點(diǎn)。Java 是一門(mén)很優(yōu)秀的編 程語(yǔ)言,是
11、目前軟件設(shè)計(jì)中極為健壯的編程語(yǔ)言。Java 不僅可以用來(lái)開(kāi)發(fā)大型 的應(yīng)用程序,而且特別適合于 Internet 的應(yīng)用開(kāi)發(fā)。Java 確實(shí)具備了“一次 寫(xiě)成,處處運(yùn)行”的特點(diǎn),所以,Java 已經(jīng)成為網(wǎng)絡(luò)時(shí)代最重要的編程語(yǔ)言之 一。本程序充分利用 Java 語(yǔ)言的特點(diǎn),針對(duì)當(dāng)下社會(huì)比較重視的文件加密,設(shè) 計(jì)了本程序。 使用本程序可以對(duì) txt,word 等多種文件進(jìn)行加密解密,使用便捷實(shí)用,功 能完善, 滿足了用戶(hù)對(duì)文件安全性的需求。 關(guān)鍵詞: JAVA ; 加密; 解密; 課程設(shè)計(jì)說(shuō)明書(shū)用紙 - 2 - 一、題目分析 1.1 課程設(shè)計(jì)的要求和內(nèi)容(包括原始數(shù)據(jù)、技術(shù)要求、工作要 求) 基本要
12、求: 1.用圖形用戶(hù)界面實(shí)現(xiàn),建立菜單。 2. 給定任意一個(gè)文本文件,進(jìn)行加密,生成另一個(gè)文件。 3對(duì)加密后的文件還原。 1.2 團(tuán)隊(duì)任務(wù)分析 分析如下: 1向圖形用戶(hù)界面中添加組件。 2設(shè)置各個(gè)組件的布局。 3.添加窗口事件。 4. 查找讀入及寫(xiě)入文件,并顯示。 5.加密功能實(shí)現(xiàn)。 6.解密功能實(shí)現(xiàn)。 其中:團(tuán)隊(duì)成員及其負(fù)責(zé)的任務(wù)如下: 馮治波:圖形用戶(hù)界面 吳祎筱和陳冬姣:文本加密 高峻輝:文本的還原(解密) 1.3 相關(guān)知識(shí)介紹 本程序采用傳統(tǒng)的異或加密算法,沒(méi)有采用 DES 算法,但對(duì)于世界上公認(rèn) 的 DES 是一種分組加密算法,是以 64 位為分組對(duì)數(shù)據(jù)加密。64 位一組
13、的明文 從算法的一端 輸入,64 位的密文從另一端輸出。密鑰的長(zhǎng)度為 56 位(密鑰通 常表示為 64 位的數(shù),但每個(gè)第 8 位都用作奇偶檢驗(yàn),可以忽 略)。密鑰可以是 任意的 56 位數(shù),且可以在任意的時(shí)候改變。 本程序采用的算法與 DES 相同的 課程設(shè)計(jì)說(shuō)明書(shū)用紙 - 3 - 一點(diǎn)是:都是一個(gè)對(duì)稱(chēng)算法:及加密和解密用的是同一個(gè)算法。 我們也許知道公認(rèn)的 DES 算法的工作過(guò)程,那就是:若 Mode 為加密,則用 Key 對(duì)數(shù)據(jù) Data 進(jìn)行加密,生成 Data 的密碼 形式(64 位)作為 DES 的輸出結(jié) 果;若 Mode 為解密,則用 Key 對(duì)密碼形式的數(shù)據(jù) Data 解密,還
14、原為 Data 的 明碼形式(64 位)作為 DES 的輸出結(jié)果。但是,重要的是本程序首先經(jīng)“打開(kāi)” 菜單項(xiàng),進(jìn)入文件選擇模塊,讀取字符流,輸出文本文檔后,在一個(gè)數(shù)組中, 對(duì)字符進(jìn)行異或運(yùn)算,從而達(dá)到加密的效果。 在通信網(wǎng)絡(luò)的兩端,雙方約定了一致的 Key,在通信的源點(diǎn)用 Key 對(duì)核心 數(shù)據(jù)進(jìn)行 DES 加密 ,然后以密碼形式通過(guò)公共通信網(wǎng)(如電話網(wǎng))傳輸?shù)酵ㄐ?網(wǎng)絡(luò)的終點(diǎn),數(shù)據(jù)達(dá)到目的 地后,用同樣的 Key 對(duì)密碼數(shù)據(jù)進(jìn)行解密,便再現(xiàn) 了明碼形式的核心數(shù)據(jù)。這樣便保證了核 心數(shù)據(jù)(如 PIN,MAC 等)在公共通 信網(wǎng)中傳輸?shù)陌踩院涂煽啃浴Mㄟ^(guò)定期在通信網(wǎng)絡(luò)的源 端和目的端同時(shí)改用 新
15、的 Key,便能更進(jìn)一步提高數(shù)據(jù)的保密性,這正是現(xiàn)在金融界交易網(wǎng) 絡(luò)的流 行作法。 簡(jiǎn)單地說(shuō),DES 算法只不過(guò)是加密的其中一種技術(shù),通過(guò)一個(gè)初始置換, 將明文分組分成左半部分和右半部分,各 32 位 長(zhǎng)。然后進(jìn)行 16 輪相同的運(yùn)算, 這些相同的運(yùn)算被稱(chēng)為函數(shù) f,在運(yùn)算過(guò)程中數(shù)據(jù)和密 鑰相結(jié)合。經(jīng)過(guò) 16 輪運(yùn) 算后左、右部分在一起經(jīng)過(guò)一個(gè)置換(初始置換的逆置換) ,這樣算 法就完成 了。 本程序雖然沒(méi)有采用此算法,而是采用眾所周知的與 DES 有相似之處的 異或算法,實(shí)際上是降低了程序的復(fù)雜度,使其更清晰,但功能依舊很強(qiáng)大, 可見(jiàn)優(yōu)勢(shì)也是很多的。 二、概要設(shè)計(jì) 2.1 抽象數(shù)據(jù)類(lèi)型的定義
16、 2.1.1 程序所需要引入的包: import java.awt.*; //包含用于創(chuàng)建用戶(hù)界面和繪制圖形圖像的 所有類(lèi)。 課程設(shè)計(jì)說(shuō)明書(shū)用紙 - 4 - import java.awt.event.*; //提供處理由 AWT 組件所激發(fā)的各類(lèi)事件 的接口和類(lèi)。 import javax.swing.*; //提供一組“輕量級(jí)” (全部是 Java 語(yǔ)言)組 件,盡量讓這些組件在所有平臺(tái)上的工作方式都相同。 import java.io.*; //通過(guò)數(shù)據(jù)流、序列化和文件系統(tǒng)提供系統(tǒng)輸 入和輸出。 2.1.2 其他定義: new FlowLayout()
17、對(duì)文件加密器對(duì)話框采用 FlowLayout 管理器。 new ActionListener() 對(duì)文件的加密和解密設(shè)置事件監(jiān)聽(tīng)器。 2.2 各程序模塊之間的層次(調(diào)用)關(guān)系 2.2.1 模塊定義 圖形用戶(hù)界面模塊: 添加各種所需組件,設(shè)置窗口事件。 加密操作模塊: 根據(jù)選擇的文本文件,在瀏覽窗口中顯示后,進(jìn)行加密,顯示在“文本瀏 覽窗口”中。 解密操作模塊: 同加密模塊一樣,由密文的保存路徑,打開(kāi),進(jìn)行解密,顯示在“文本瀏 覽窗口”中。 文件選擇模塊: 選擇需要加密或解密的文件。 文件保存模塊: 選擇保存路徑,保存需要加密或解密的文件。 2.2.2 層次(調(diào)用) 關(guān)系 根據(jù)以上各程序模塊
18、的定義,可以大致畫(huà)出各模塊的層次調(diào)用關(guān)系,由文 件加密器模塊開(kāi)始調(diào)用,直到解密模塊調(diào)用為止。如下圖 2-2-2 所示。 課程設(shè)計(jì)說(shuō)明書(shū)用紙 - 5 - 文件加密器模塊 文件選擇模塊 加密操作模塊 文件保存模塊 解密操作模塊 圖 2-2-2 層次(調(diào)用)關(guān)系 三、詳細(xì)設(shè)計(jì) 3.1 程序流程圖 該程序的模塊調(diào)用十分簡(jiǎn)單明了,所以主程序的運(yùn)行也很清晰,以下就是 主程序的詳細(xì)流程圖,如圖 3-1 所示 課程設(shè)計(jì)說(shuō)明書(shū)用紙 - 6 - 開(kāi)始 彈出文件加密器對(duì)話框 點(diǎn)擊“文件”菜單下的 “打開(kāi)” ,獲得文件 對(duì)顯示在瀏覽窗口的 “文件”加密 生成加密文件 點(diǎn)擊“ 保存”
19、,選擇路徑, 生成新文件,并以“.txt”命 名 點(diǎn)擊“文件”菜單下的 “打開(kāi)” ,獲得加密后的 文件 對(duì)顯示在瀏覽窗口的 “文件”解密 生成解密文件 結(jié)束 圖 3-1 主程序流程圖 3.2 圖形用戶(hù)界面模塊 在圖形用戶(hù)界面,設(shè)置兩個(gè)面板,并分別設(shè)置顯示其組件的布局。設(shè)置兩個(gè) 菜單項(xiàng),分別為“打開(kāi)”和“保存” ;設(shè)置兩個(gè)按鈕,分別為“加密”和“解密” ;創(chuàng)建一個(gè)文本區(qū),用一個(gè)標(biāo)簽注明“文件瀏覽窗口” ,這就是整個(gè)圖形用戶(hù)界 面。 此外,還添加了一個(gè)窗口事件 windowClosing,可以關(guān)閉運(yùn)行的程序。 課程設(shè)計(jì)說(shuō)明書(shū)用紙 - 7 - 窗口事件的代碼實(shí)現(xiàn): add
20、WindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); 3.3 加密操作模塊 本程序采用簡(jiǎn)單的加密算法,即把從文本區(qū)獲得的文本文件,初始化,存 放到一個(gè)數(shù)組中,然后進(jìn)行異或運(yùn)算,把結(jié)果重新存放于該數(shù)組中,從而顯現(xiàn) 在“文件瀏覽窗口”中。 代碼實(shí)現(xiàn): if(e.getSource()==button1) char a=texta.getText().toCharArray();/*把 texta 中獲得的 文本,進(jìn)行初始化,與原字符串長(zhǎng)度相等,并
21、將該字符串對(duì)象的全部字符復(fù)制 到該數(shù)組 a中*/ texta.setText(null); int n; char secret= ; for(int i=0;i 22、rce()==button2) char a=texta.getText().toCharArray(); texta.setText(null); int n; char secret= ; for(int i=0;i 23、計(jì)說(shuō)明書(shū)用紙 - 9 - if(e.getSource()==itemSave)//查找寫(xiě)入的文件 filedialog_save.setVisible(true); if(filedialog_save.getFile()!=null) try File file=new File(filedialog_save.getDirectory(),filedialog_save.getFile()); FileWriter tofile=new FileWriter(file);//寫(xiě)入字符流 BufferedWriter out=new BufferedWriter(tofile); o 24、ut.write(texta.getText(),0,(texta.getText()).length()); out.close(); tofile.close(); catch (IOException e2) 3.6 文件選擇模塊 同上個(gè)文件保存模塊類(lèi)似,依舊在選擇菜單項(xiàng)“打開(kāi)”后,查找讀入文件, 讀取字符流,彈出“打開(kāi)對(duì)話框” ,從而可實(shí)現(xiàn)獲取文件。 出口值:被選文件的路徑 代碼實(shí)現(xiàn): public void actionPerformed(ActionEvent e)//查找讀入文件 if(e.getSource()==itemOpen) 課程設(shè)計(jì)說(shuō)明書(shū)用紙 - 1 25、0 - filedialog_load.setVisible(true); texta.setText(null); String s; if(filedialog_load.getFile()!=null) try File file=new File(filedialog_load.getDirectory(),filedialog_load.getFile()); FileReader file_reader=new FileReader(file);//讀取 字符流 BufferedReader in=new BufferedReader(file_reader); while( 26、(s=in.readLine())!=null) texta.append(s+n); in.close(); file_reader.close(); catch (IOException e1) 四、調(diào)試分析 4.1 對(duì)設(shè)計(jì)與實(shí)現(xiàn)的回顧討論和分析 在程序設(shè)計(jì)之初,考慮的是如何實(shí)現(xiàn) DES 算法,但發(fā)現(xiàn) DES 算法對(duì)于本次 小程序來(lái)說(shuō),的確過(guò)于繁瑣,但當(dāng)我們發(fā)現(xiàn)采用簡(jiǎn)化后的 DES 算法----異或算 課程設(shè)計(jì)說(shuō)明書(shū)用紙 - 11 - 法也可實(shí)現(xiàn)本功能,所以以后大大減少了工作量,可以說(shuō)用 Java 語(yǔ)言是程序?qū)?現(xiàn)的一個(gè)成功之處。Java 語(yǔ)言具有簡(jiǎn)單、安全、可移植、面向?qū)ο?、?/p>
27、壯、多 線程、體系結(jié)構(gòu)中立、解釋執(zhí)行、高性能、分布式和動(dòng)態(tài)等主要特點(diǎn)。而且, 我覺(jué)得隨著科技的不斷進(jìn)步,Java 語(yǔ)言的優(yōu)越性會(huì)不斷地被挖掘出來(lái),因?yàn)?Java 語(yǔ)言也是有生命的,它是不斷被人們的需求演變的越來(lái)越強(qiáng)大,這些,我 覺(jué)得不言而喻。但往后,我想只有在不斷的使用以后才能體會(huì)到,在發(fā)現(xiàn) Java 擁有秘密密鑰工廠后更是感受到它的強(qiáng)大。Java 的 JDK 幫助文檔對(duì)于使用 Java 編程是非常有幫助的,在我們編程過(guò)程中,遇到的一些不清楚的地方,都是靠 它才得以解決,同時(shí)對(duì) Java 語(yǔ)言的了解也更方便、深入了。 程序利用 Java 圖形界面設(shè)計(jì)了一個(gè)方便用戶(hù)操作的窗口,使得程序運(yùn)行的 時(shí) 28、候更想是個(gè)封裝好的運(yùn)用程序,不過(guò)我知道離這個(gè)還是有很大距離的,而程 序所要提升空間非常大,現(xiàn)在界面所能實(shí)現(xiàn)的也就幾個(gè)操作而已。但我們一致 認(rèn)為:如果程序要再做的強(qiáng)大點(diǎn),可以引入其他的加密算法共用戶(hù)選擇,還可 以設(shè)計(jì)成同時(shí)對(duì)多個(gè)文件進(jìn)行加密,不過(guò)這只能放到我們課下對(duì)此進(jìn)行更深一 步的研究了。 程序的每個(gè)模塊實(shí)現(xiàn)的功能還算完整,層次間的調(diào)用還是比較清晰的,各 個(gè)功能也得到了基本的實(shí)現(xiàn)。 4.2 算法的時(shí)空分析 算法的時(shí)空分析,其實(shí)就是指算法的空間復(fù)雜度(包括時(shí)間復(fù)雜度和空間 復(fù)雜度) ,其 作 用 : 時(shí) 間 復(fù) 雜 度 是 度 量 算 法 執(zhí) 行 的 時(shí) 間 長(zhǎng) 短 ; 而 空 間 復(fù) 雜 度 29、是 度 量 算 法 所 需 存 儲(chǔ) 空 間 的 大 小 。 程 序 的 時(shí) 間 復(fù) 雜 度 理 論 上 是 算 不 出 來(lái) 的 , 必 須 經(jīng) 過(guò) 必 須 上 機(jī) 運(yùn) 行 測(cè) 試 才 能 知 道 。 但 我 們 不 可 能 也 沒(méi) 有 必 要 對(duì) 每 個(gè) 算 法 都 上 機(jī) 測(cè) 試 。 但 我 們 可 以 知 道 本 算 法 其 實(shí) 是 DES 算 法 的 簡(jiǎn) 化 , 所 以 , 肯 定 只 需 知 道 哪 個(gè) 算 法 花 費(fèi) 的 時(shí) 間 多 , 哪 個(gè) 算 法 花 費(fèi) 的 時(shí) 間 少 就 可 以 了 , 并 且 , 一 個(gè) 算 法 花 費(fèi) 的 時(shí) 間 與 算 法 中 語(yǔ) 句 的 執(zhí) 行 次 30、數(shù) 成 正 比 例 , DES 對(duì) 64 位的明文分組進(jìn)行操作,通過(guò)一個(gè) 初始置換,將明文分組成左半部分 Li 和右半部分 Ri,各 32 位長(zhǎng)。然后進(jìn)行 16 輪 完全相同的運(yùn)算,本程序直接采用數(shù)組,對(duì)其中的字符循環(huán)異或,只需進(jìn)行一 輪,所以時(shí)間復(fù)雜度 T(n)是 比 較 小 的 。 空 間 復(fù) 雜 度 O(n)也 是 一 樣 的 , 它 是 對(duì) 課程設(shè)計(jì)說(shuō)明書(shū)用紙 - 12 - 程 序 占 用 內(nèi) 存 的 分 析 , 由 公 式 T( n) =O( f( n) ) 知 , 時(shí) 間 復(fù) 雜 度 與 空 間 復(fù) 雜 度 均 為 O(n)。 4.3 經(jīng)驗(yàn)和體會(huì) 這次課程設(shè)計(jì)的要求并不多,只要實(shí)現(xiàn) 31、加密與解密功能,而且只需要采用 一種加密算法,但是為了本次課程設(shè)計(jì),我們組也搜索了大量的資料,并根據(jù) 在課堂上,書(shū)本上,老師講過(guò)的知識(shí),結(jié)合自身主觀和客觀因素,制定了本次 課程設(shè)計(jì)的目標(biāo),并齊心協(xié)力,完成了此次設(shè)計(jì)。 通過(guò)本次的課程設(shè)計(jì),我們還知道了許多自身存在的不足,例如僅掌握了 一種加密算法,但在日益發(fā)達(dá)的社會(huì)商業(yè)等領(lǐng)域,加密解密需要做的還非常多, 并且 Java 領(lǐng)域博大精深,我們現(xiàn)在只是學(xué)到了它的一點(diǎn)皮毛而已,所以還需多 多努力。 但是通過(guò)這些我還是學(xué)到了很多東西,先不說(shuō)其他的,我最起碼最基礎(chǔ)的 加密算法,而且以后可以運(yùn)用到自己想要保密的文件當(dāng)中去。 通過(guò)這次課程設(shè)計(jì),我用 JAVA 32、語(yǔ)言實(shí)現(xiàn),我這是我對(duì) JAVA 語(yǔ)言有了根深 的了解鞏固了以前學(xué)到的知識(shí),也學(xué)習(xí)到了新的知識(shí),課程設(shè)計(jì)雖然暫告一個(gè) 段落,但我們學(xué)習(xí) Java 的步伐不會(huì)終止。 五、測(cè)試結(jié)果 5.1 加密 首先在我機(jī)器 C 盤(pán)文件夾名為 1 的文件夾離創(chuàng)建一個(gè)名為 Example.txt 文 本文件用做測(cè)試。 運(yùn)行程序,彈出如圖 5-1-1 的對(duì)話框 課程設(shè)計(jì)說(shuō)明書(shū)用紙 - 13 - 圖 5-1-1 運(yùn)行程序 點(diǎn)擊“文件” ,選擇“打開(kāi)” ,即彈出“打開(kāi)”對(duì)話框,選擇一個(gè)文本文件, 如圖 5-1-2。 圖 5-1-2 選擇加密文件 課程設(shè)計(jì)說(shuō)明書(shū)用紙 - 33、 14 - 選擇文件后,即可在“文件瀏覽窗口”中顯示文本的信息,點(diǎn)擊“加密” 按鈕,即可在“文件瀏覽窗口”看到加密后的文件(如圖 5-1-3) 。 圖 5-1-3 生成加密文件 對(duì)加密后的密文進(jìn)行保存,選擇“文件”下的“保存” ,即可彈出“保存”對(duì)話 框,選擇路徑,即可保存,如圖 5-1-4 和 5-1-5 所示。 課程設(shè)計(jì)說(shuō)明書(shū)用紙 - 15 - 圖 5-1-4 保存加密文件 圖 5-1-5 瀏覽加密文件 5.2 解密 解密操作中對(duì)文件選擇,密碼輸入和加密操作是一樣的。 將剛剛加密的程序進(jìn)行解密,打開(kāi)密文文件,選擇“加密與 34、解密”窗口下 “解密”按鈕,點(diǎn)擊,即可解密,如圖 5-2 所示。 圖 5-2 生成解密文件 課程設(shè)計(jì)說(shuō)明書(shū)用紙 - 16 - 六、主要參考資料 1 Java 語(yǔ)言程序設(shè)計(jì)教程邱桃榮 機(jī)械工業(yè)出版社 2 Java 程序設(shè)計(jì)試驗(yàn)指導(dǎo)陳軼 姚曉昆 清華大學(xué)出版社 3 耿祥義等.Java 課程設(shè)計(jì)(第 2 版).北京:清華大學(xué)出版社 ,2006.8 4 耿祥義等.Java 實(shí)用教程(第三版) .北京:清華大學(xué)出版社 ,2006.8 5 ??藸? Java 編程思想(第 4 版).北京:機(jī)械工業(yè)出版社 ,2007.6 6 通過(guò)互連網(wǎng)檢索相關(guān)資料。 七、附錄 源代碼 35、: import java.awt.*; import java.awt.event.*; import java.io.*; import javax.swing.*; class Myframe extends Frame implements ActionListener FileDialog filedialog_save,filedialog_load; Button button1,button2; Label label; MenuBar bar; Menu menu; MenuItem itemOpen,itemSave; TextArea texta; Myframe(St 36、ring s) //創(chuàng)建對(duì)話框 課程設(shè)計(jì)說(shuō)明書(shū)用紙 - 17 - super(s); texta= new TextArea(38,160); button1= new Button(加密); button2= new Button(解密); menu=new Menu(文件); itemOpen=new MenuItem(打開(kāi)); itemSave=new MenuItem(保存); label=new Label(文件瀏覽窗口); itemOpen.addActionListener(this); itemSave.addActionListener(this); bu 37、tton1.addActionListener(this); button2.addActionListener(this); filedialog_save=new FileDialog(this,保存文件對(duì)話框 ,FileDialog.SAVE); filedialog_load=new FileDialog(this,打開(kāi)文件對(duì)話框 ,FileDialog.LOAD); filedialog_save.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) filedialog_sa 38、ve.setVisible(false); ); filedialog_load.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) filedialog_load.setVisible(false); 課程設(shè)計(jì)說(shuō)明書(shū)用紙 - 18 - ); Box box1=Box.createHorizontalBox();//創(chuàng)建一個(gè)從左到右顯示其組 件的 box1; Box box2=Box.createVerticalBox();//創(chuàng)建一個(gè)從上到下顯示其組件 的 box2; B 39、ox box3=Box.createVerticalBox(); Box boxbase=Box.createVerticalBox(); Panel panel1=new Panel(); Panel panel2=new Panel(); setMenuBar(bar=new MenuBar()); bar.add(menu); menu.add(itemOpen); menu.add(itemSave); panel1.add(button1); panel1.add(button2); box1.add(panel1); box2.add(label); panel2.add(te 40、xta); box3.add(panel2); boxbase.add(box1); boxbase.add(box2); boxbase.add(box3); add(boxbase); setLayout(new FlowLayout()); setBounds(100,0,1200,750); setVisible(true); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) 課程設(shè)計(jì)說(shuō)明書(shū)用紙 - 19 - System.exit(0); ); //“關(guān)閉” 41、窗口事件; public void actionPerformed(ActionEvent e)//查找讀入文件 if(e.getSource()==itemOpen) filedialog_load.setVisible(true); texta.setText(null); String s; if(filedialog_load.getFile()!=null) try File file=new File(filedialog_load.getDirectory(),filedialog_load.getFile()); FileReader file_reader=new F 42、ileReader(file);//讀取 字符流 BufferedReader in=new BufferedReader(file_reader); while((s=in.readLine())!=null) texta.append(s+n); in.close(); file_reader.close(); catch (IOException e1) 課程設(shè)計(jì)說(shuō)明書(shū)用紙 - 20 - if(e.getSource()==itemSave)//查找寫(xiě)入的文件 filedialog_save.setVisible(true); if(filedialog_save.getFi 43、le()!=null) try File file=new File(filedialog_save.getDirectory(),filedialog_save.getFile()); FileWriter tofile=new FileWriter(file);//讀取字符流 BufferedWriter out=new BufferedWriter(tofile); out.write(texta.getText(),0,(texta.getText()).length()); out.close(); tofile.close(); catch (IOException e2) 44、 if(e.getSource()==button1) char a=texta.getText().toCharArray();/*把 texta 中獲得的 文本,進(jìn)行初始化,與原字符串長(zhǎng)度相等,并將該字符串對(duì)象的全部字符復(fù)制 到該數(shù)組 a中*/ texta.setText(null); 課程設(shè)計(jì)說(shuō)明書(shū)用紙 - 21 - int n; char secret= ; for(int i=0;i
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 雅馬哈ts-x_ts-s使用說(shuō)明課件
- 多元函數(shù)的微積分
- 商業(yè)保險(xiǎn)與社會(huì)保險(xiǎn)的區(qū)別
- HL-X6280終端培訓(xùn)手冊(cè)
- 汽車(chē)電路原理
- 通信網(wǎng)絡(luò)演進(jìn)及LTE關(guān)鍵技術(shù)教材
- 借助展業(yè)夾提升平安福簽單率廣東葉華東終稿[1]課件
- (精品)珠江國(guó)際城代管人員2
- 零售-7-11經(jīng)營(yíng)模式分析
- 電子病歷簡(jiǎn)介及門(mén)診醫(yī)生工作站[1]課件
- 食管癌術(shù)后早期營(yíng)養(yǎng)支持相關(guān)研究
- LHQ電纜層保護(hù)器相關(guān)型號(hào)列表參數(shù)
- 大腦前動(dòng)脈動(dòng)脈瘤用
- 甲真菌病各藥物特點(diǎn)教學(xué)課件
- 滑輪組機(jī)械效率