版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、目目 錄:錄:前前 言言.1一、題目分析一、題目分析.21 1.1.1 課程課程設(shè)計(jì)設(shè)計(jì)的要求和內(nèi)容(包括原始數(shù)據(jù)、技術(shù)要求、工作要求)的要求和內(nèi)容(包括原始數(shù)據(jù)、技術(shù)要求、工作要求) .21.2 團(tuán)隊(duì)任務(wù)分析團(tuán)隊(duì)任務(wù)分析 21.31.3 相關(guān)知識(shí)介紹相關(guān)知識(shí)介紹.2二、概要設(shè)計(jì)二、概要設(shè)計(jì).32.12.1 抽象數(shù)據(jù)類型的定義抽象數(shù)據(jù)類型的定義.32.22.2 各程序模塊之間的層次各程序模塊之間的層次( (調(diào)用調(diào)用) )關(guān)系關(guān)系.4三、詳細(xì)設(shè)計(jì)三、詳細(xì)設(shè)計(jì).53.13.1 程序流程圖程序流程圖 .5 53.23.2 圖形用戶界面模塊圖形用戶界面模塊 .63.33.3 加密操作模塊加密操作模塊.
2、73.43.4 解密操作模塊解密操作模塊.7 73.53.5 文件保存模塊文件保存模塊.73.63.6 文件選擇模塊文件選擇模塊 .8四、調(diào)試分析四、調(diào)試分析.94.14.1 對(duì)設(shè)計(jì)與實(shí)現(xiàn)的回顧討論和分析對(duì)設(shè)計(jì)與實(shí)現(xiàn)的回顧討論和分析.104.24.2 算法的時(shí)空分析算法的時(shí)空分析.114.34.3 經(jīng)驗(yàn)和體會(huì)經(jīng)驗(yàn)和體會(huì).12五、測(cè)試結(jié)果五、測(cè)試結(jié)果.125.15.1 加密加密 .125.25.2 解密解密 .15六、主要參考資料六、主要參考資料 .16 七、附錄七、附錄.16課程設(shè)計(jì)說明書用紙- 1 -前前 言言 隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,人們的個(gè)人信息、網(wǎng)絡(luò)間的文件傳遞、電子商務(wù)等方面都需要大
3、力的保護(hù),文件加密技術(shù)也就隨之產(chǎn)生。文件的加密主要是由加密算法實(shí)現(xiàn),加密算法有多種,常見的有 RSA、DES、MD5 等。但是這些算法雖然原理簡(jiǎn)單,但具體實(shí)現(xiàn)起來卻非常繁瑣復(fù)雜,故而本程序設(shè)計(jì)對(duì)文件的加密使用的是最基礎(chǔ)的異或加密算法。Java 語言具有簡(jiǎn)單、安全、可移植、面向?qū)ο蟆⒔?、多線程、體系結(jié)構(gòu)中立、解釋執(zhí)行、高性能、分布式和動(dòng)態(tài)等主要特點(diǎn)。Java 是一門很優(yōu)秀的編程語言,是目前軟件設(shè)計(jì)中極為健壯的編程語言。Java 不僅可以用來開發(fā)大型的應(yīng)用程序,而且特別適合于 Internet 的應(yīng)用開發(fā)。Java 確實(shí)具備了“一次寫成,處處運(yùn)行”的特點(diǎn),所以,Java 已經(jīng)成為網(wǎng)絡(luò)時(shí)代最重要的
4、編程語言之一。本程序充分利用 Java 語言的特點(diǎn),針對(duì)當(dāng)下社會(huì)比較重視的文件加密,設(shè)計(jì)了本程序。使用本程序可以對(duì) txt,word 等多種文件進(jìn)行加密解密,使用便捷實(shí)用,功能完善,滿足了用戶對(duì)文件安全性的需求。關(guān)鍵詞:JAVA ; 加密; 解密;課程設(shè)計(jì)說明書用紙- 2 -一、題目分析一、題目分析1.1 課程設(shè)計(jì)的要求和內(nèi)容(包括原始數(shù)據(jù)、技術(shù)要求、工作要課程設(shè)計(jì)的要求和內(nèi)容(包括原始數(shù)據(jù)、技術(shù)要求、工作要求)求)基本要求:1.用圖形用戶界面實(shí)現(xiàn),建立菜單。2. 給定任意一個(gè)文本文件,進(jìn)行加密,生成另一個(gè)文件。3對(duì)加密后的文件還原。1.2 團(tuán)隊(duì)任務(wù)分析團(tuán)隊(duì)任務(wù)分析分析如下:1向圖形用戶界面中
5、添加組件。2設(shè)置各個(gè)組件的布局。3.添加窗口事件。4. 查找讀入及寫入文件,并顯示。5.加密功能實(shí)現(xiàn)。6.解密功能實(shí)現(xiàn)。其中:團(tuán)隊(duì)成員及其負(fù)責(zé)的任務(wù)如下: 馮治波:圖形用戶界面 吳祎筱和陳冬姣:文本加密 高峻輝:文本的還原(解密)1.3 相關(guān)知識(shí)介紹相關(guān)知識(shí)介紹本程序采用傳統(tǒng)的異或加密算法,沒有采用 DES 算法,但對(duì)于世界上公認(rèn)的 DES 是一種分組加密算法,是以 64 位為分組對(duì)數(shù)據(jù)加密。64 位一組的明文從算法的一端 輸入,64 位的密文從另一端輸出。密鑰的長(zhǎng)度為 56 位(密鑰通常表示為 64 位的數(shù),但每個(gè)第 8 位都用作奇偶檢驗(yàn),可以忽 略)。密鑰可以是任意的 56 位數(shù),且可以在
6、任意的時(shí)候改變。 本程序采用的算法與 DES 相同的課程設(shè)計(jì)說明書用紙- 3 -一點(diǎn)是:都是一個(gè)對(duì)稱算法:及加密和解密用的是同一個(gè)算法。我們也許知道公認(rèn)的 DES 算法的工作過程,那就是:若 Mode 為加密,則用Key 對(duì)數(shù)據(jù) Data 進(jìn)行加密,生成 Data 的密碼 形式(64 位)作為 DES 的輸出結(jié)果;若 Mode 為解密,則用 Key 對(duì)密碼形式的數(shù)據(jù) Data 解密,還 原為 Data 的明碼形式(64 位)作為 DES 的輸出結(jié)果。但是,重要的是本程序首先經(jīng)“打開”菜單項(xiàng),進(jìn)入文件選擇模塊,讀取字符流,輸出文本文檔后,在一個(gè)數(shù)組中,對(duì)字符進(jìn)行異或運(yùn)算,從而達(dá)到加密的效果。在通
7、信網(wǎng)絡(luò)的兩端,雙方約定了一致的 Key,在通信的源點(diǎn)用 Key 對(duì)核心數(shù)據(jù)進(jìn)行 DES 加密 ,然后以密碼形式通過公共通信網(wǎng)(如電話網(wǎng))傳輸?shù)酵ㄐ啪W(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ù)陌踩院涂煽啃?。通過定期在通信網(wǎng)絡(luò)的源 端和目的端同時(shí)改用新的 Key,便能更進(jìn)一步提高數(shù)據(jù)的保密性,這正是現(xiàn)在金融界交易網(wǎng) 絡(luò)的流行作法。 簡(jiǎn)單地說,DES 算法只不過是加密的其中一種技術(shù),通過一個(gè)初始置換,將明文分組分成左半部分和右半部分,各 32 位 長(zhǎng)。然后進(jìn)行 16 輪相同的運(yùn)
8、算,這些相同的運(yùn)算被稱為函數(shù) f,在運(yùn)算過程中數(shù)據(jù)和密 鑰相結(jié)合。經(jīng)過 16 輪運(yùn)算后左、右部分在一起經(jīng)過一個(gè)置換(初始置換的逆置換) ,這樣算 法就完成了。 本程序雖然沒有采用此算法,而是采用眾所周知的與 DES 有相似之處的異或算法,實(shí)際上是降低了程序的復(fù)雜度,使其更清晰,但功能依舊很強(qiáng)大,可見優(yōu)勢(shì)也是很多的。二、概要設(shè)計(jì)二、概要設(shè)計(jì)2.1 抽象數(shù)據(jù)類型的定義抽象數(shù)據(jù)類型的定義2.1.12.1.1 程序所需要引入的包:程序所需要引入的包:import java.awt.*; /包含用于創(chuàng)建用戶界面和繪制圖形圖像的所有類。課程設(shè)計(jì)說明書用紙- 4 -import java.awt.event
9、.*; /提供處理由 AWT 組件所激發(fā)的各類事件的接口和類。import javax.swing.*; /提供一組“輕量級(jí)”(全部是 Java 語言)組件,盡量讓這些組件在所有平臺(tái)上的工作方式都相同。import java.io.*; /通過數(shù)據(jù)流、序列化和文件系統(tǒng)提供系統(tǒng)輸入和輸出。2.1.22.1.2 其他定義:其他定義:new FlowLayout() 對(duì)文件加密器對(duì)話框采用 FlowLayout 管理器。new ActionListener() 對(duì)文件的加密和解密設(shè)置事件監(jiān)聽器。2.2 各程序模塊之間的層次各程序模塊之間的層次(調(diào)用調(diào)用)關(guān)系關(guān)系2.2.12.2.1 模塊定義模塊定義
10、圖形用戶界面模塊:添加各種所需組件,設(shè)置窗口事件。加密操作模塊:根據(jù)選擇的文本文件,在瀏覽窗口中顯示后,進(jìn)行加密,顯示在“文本瀏覽窗口”中。解密操作模塊:同加密模塊一樣,由密文的保存路徑,打開,進(jìn)行解密,顯示在“文本瀏覽窗口”中。文件選擇模塊:選擇需要加密或解密的文件。文件保存模塊:選擇保存路徑,保存需要加密或解密的文件。2.2.2 層次層次(調(diào)用調(diào)用)關(guān)系關(guān)系 根據(jù)以上各程序模塊的定義,可以大致畫出各模塊的層次調(diào)用關(guān)系,由文件加密器模塊開始調(diào)用,直到解密模塊調(diào)用為止。如下圖 2-2-2 所示。課程設(shè)計(jì)說明書用紙- 5 -文件加密器模塊文件選擇模塊加密操作模塊文件保存模塊解密操作模塊 圖圖 2
11、-2-22-2-2 層次(調(diào)用)關(guān)系層次(調(diào)用)關(guān)系三、詳細(xì)設(shè)計(jì)三、詳細(xì)設(shè)計(jì)3.1 程序流程圖程序流程圖 該程序的模塊調(diào)用十分簡(jiǎn)單明了,所以主程序的運(yùn)行也很清晰,以下就是主程序的詳細(xì)流程圖,如圖 3-1 所示課程設(shè)計(jì)說明書用紙- 6 -開始彈出文件加密器對(duì)話框點(diǎn)擊“文件”菜單下的“打開” ,獲得文件對(duì)顯示在瀏覽窗口的“文件”加密生成加密文件點(diǎn)擊“保存” ,選擇路徑,生成新文件,并以“.txt”命名點(diǎn)擊“文件”菜單下的“打開” ,獲得加密后的文件對(duì)顯示在瀏覽窗口的“文件”解密生成解密文件結(jié)束 圖圖 3-13-1 主程序流程圖主程序流程圖3.2 圖形用戶界面模塊圖形用戶界面模塊在圖形用戶界面,設(shè)置
12、兩個(gè)面板,并分別設(shè)置顯示其組件的布局。設(shè)置兩個(gè)菜單項(xiàng),分別為“打開”和“保存” ;設(shè)置兩個(gè)按鈕,分別為“加密”和“解密”;創(chuàng)建一個(gè)文本區(qū),用一個(gè)標(biāo)簽注明“文件瀏覽窗口” ,這就是整個(gè)圖形用戶界面。 此外,還添加了一個(gè)窗口事件 windowClosing,可以關(guān)閉運(yùn)行的程序。課程設(shè)計(jì)說明書用紙- 7 -窗口事件的代碼實(shí)現(xiàn):addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); );3.3 加密操作模塊加密操作模塊本程序采用簡(jiǎn)單的加密算法,即把從文本區(qū)獲得的文本文件
13、,初始化,存放到一個(gè)數(shù)組中,然后進(jìn)行異或運(yùn)算,把結(jié)果重新存放于該數(shù)組中,從而顯現(xiàn)在“文件瀏覽窗口”中。代碼實(shí)現(xiàn):代碼實(shí)現(xiàn):if(e.getSource()=button1)char a=texta.getText().toCharArray();/*把 texta 中獲得的文本,進(jìn)行初始化,與原字符串長(zhǎng)度相等,并將該字符串對(duì)象的全部字符復(fù)制到該數(shù)組 a中*/texta.setText(null);int n;char secret= ;for(int i=0;ia.length;i+)char c=(char)(secretai);/進(jìn)行異或運(yùn)算texta.append(+c);課程設(shè)計(jì)說明書
14、用紙- 8 -3.4 解密操作模塊解密操作模塊 解密操作其實(shí)同加密操作相同,依舊首先打開加密后的文件,使其顯示在文本區(qū)中,再同樣對(duì)數(shù)組里的元素進(jìn)行初始化,進(jìn)行異或運(yùn)算,即可得到解密后的文件,再顯示到“文件瀏覽窗口”中。 入口參數(shù):指定文件路徑代碼實(shí)現(xiàn):代碼實(shí)現(xiàn):if(e.getSource()=button2)char a=texta.getText().toCharArray();texta.setText(null);int n;char secret= ;for(int i=0;ia.length;i+)char c=(char)(secretai);/再次異或運(yùn)算,即還原texta.a
15、ppend(+c);3.5 文件保存模塊文件保存模塊本程序最大的特點(diǎn)就是:可以選擇是否保存加密后的文本文件。因?yàn)榧用芎蟮奈募蕊@示在文本區(qū)中,之后選擇菜單項(xiàng)“保存” ,即可彈出“保存對(duì)話框” ,進(jìn)行查找寫入文件,寫入字符流,從而實(shí)現(xiàn)保存。代碼實(shí)現(xiàn):代碼實(shí)現(xiàn):課程設(shè)計(jì)說明書用紙- 9 -if(e.getSource()=itemSave)/查找寫入的文件filedialog_save.setVisible(true);if(filedialog_save.getFile()!=null)tryFile file=new File(filedialog_save.getDirectory(),fi
16、ledialog_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)3.6 文件選擇模塊文件選擇模塊 同上個(gè)文件保存模塊類似,依舊在選擇菜單項(xiàng)“打開”后,查找讀入文件,讀取字符流,彈出“打開對(duì)話框” ,從而可實(shí)現(xiàn)獲取文件。 出口值:
17、被選文件的路徑代碼實(shí)現(xiàn):代碼實(shí)現(xiàn):public void actionPerformed(ActionEvent e)/查找讀入文件if(e.getSource()=itemOpen)課程設(shè)計(jì)說明書用紙- 10 -filedialog_load.setVisible(true);texta.setText(null);String s;if(filedialog_load.getFile()!=null)tryFile file=new File(filedialog_load.getDirectory(),filedialog_load.getFile();FileReader file_r
18、eader=new FileReader(file);/讀取字符流BufferedReader in=new BufferedReader(file_reader);while(s=in.readLine()!=null)texta.append(s+n);in.close();file_reader.close();catch (IOException e1)四、調(diào)試分析四、調(diào)試分析4.1 對(duì)設(shè)計(jì)與實(shí)現(xiàn)的回顧討論和分析對(duì)設(shè)計(jì)與實(shí)現(xiàn)的回顧討論和分析在程序設(shè)計(jì)之初,考慮的是如何實(shí)現(xiàn) DES 算法,但發(fā)現(xiàn) DES 算法對(duì)于本次小程序來說,的確過于繁瑣,但當(dāng)我們發(fā)現(xiàn)采用簡(jiǎn)化后的 DES 算法-異或算
19、課程設(shè)計(jì)說明書用紙- 11 -法也可實(shí)現(xiàn)本功能,所以以后大大減少了工作量,可以說用 Java 語言是程序?qū)崿F(xiàn)的一個(gè)成功之處。Java 語言具有簡(jiǎn)單、安全、可移植、面向?qū)ο?、健壯、多線程、體系結(jié)構(gòu)中立、解釋執(zhí)行、高性能、分布式和動(dòng)態(tài)等主要特點(diǎn)。而且,我覺得隨著科技的不斷進(jìn)步,Java 語言的優(yōu)越性會(huì)不斷地被挖掘出來,因?yàn)镴ava 語言也是有生命的,它是不斷被人們的需求演變的越來越強(qiáng)大,這些,我覺得不言而喻。但往后,我想只有在不斷的使用以后才能體會(huì)到,在發(fā)現(xiàn) Java擁有秘密密鑰工廠后更是感受到它的強(qiáng)大。Java 的 JDK 幫助文檔對(duì)于使用 Java編程是非常有幫助的,在我們編程過程中,遇到的一
20、些不清楚的地方,都是靠它才得以解決,同時(shí)對(duì) Java 語言的了解也更方便、深入了。程序利用 Java 圖形界面設(shè)計(jì)了一個(gè)方便用戶操作的窗口,使得程序運(yùn)行的時(shí)候更想是個(gè)封裝好的運(yùn)用程序,不過我知道離這個(gè)還是有很大距離的,而程序所要提升空間非常大,現(xiàn)在界面所能實(shí)現(xiàn)的也就幾個(gè)操作而已。但我們一致認(rèn)為:如果程序要再做的強(qiáng)大點(diǎn),可以引入其他的加密算法共用戶選擇,還可以設(shè)計(jì)成同時(shí)對(duì)多個(gè)文件進(jìn)行加密,不過這只能放到我們課下對(duì)此進(jìn)行更深一步的研究了。程序的每個(gè)模塊實(shí)現(xiàn)的功能還算完整,層次間的調(diào)用還是比較清晰的,各個(gè)功能也得到了基本的實(shí)現(xiàn)。4.2 算法的時(shí)空分析算法的時(shí)空分析算法的時(shí)空分析,其實(shí)就是指算法的空間
21、復(fù)雜度(包括時(shí)間復(fù)雜度和空間復(fù)雜度) ,其作用: 時(shí)間復(fù)雜度是度量算法執(zhí)行的時(shí)間長(zhǎng)短;而空間復(fù)雜度是度量算法所需存儲(chǔ)空間的大小。程序的時(shí)間復(fù)雜度理論上是算不出來的,必須經(jīng)過 必須上機(jī)運(yùn)行測(cè)試才能知道。但我們不可能也沒有必要對(duì)每個(gè)算法都上機(jī)測(cè)試。但我們可以知道本算法其實(shí)是 DES 算法的簡(jiǎn)化,所以,肯定 只需知道哪個(gè)算法花費(fèi)的時(shí)間多,哪個(gè)算法花費(fèi)的時(shí)間少就可以了 ,并且,一個(gè)算法花費(fèi)的時(shí)間與算法中語句的執(zhí)行次數(shù) 成正比例,DES 對(duì) 64 位的明文分組進(jìn)行操作,通過一個(gè)初始置換,將明文分組成左半部分 Li 和右半部分 Ri,各 32 位長(zhǎng)。然后進(jìn)行 16 輪完全相同的運(yùn)算,本程序直接采用數(shù)組,對(duì)
22、其中的字符循環(huán)異或,只需進(jìn)行一輪,所以時(shí)間復(fù)雜度 T(n)是比較小的??臻g復(fù)雜度 O(n)也是一樣的,它是對(duì)課程設(shè)計(jì)說明書用紙- 12 -程序占用內(nèi)存的分析,由公式 T(n)=O(f(n) )知,時(shí)間復(fù)雜度與空間復(fù)雜度均為 O(n)。4.3 經(jīng)驗(yàn)和體會(huì)經(jīng)驗(yàn)和體會(huì)這次課程設(shè)計(jì)的要求并不多,只要實(shí)現(xiàn)加密與解密功能,而且只需要采用一種加密算法,但是為了本次課程設(shè)計(jì),我們組也搜索了大量的資料,并根據(jù)在課堂上,書本上,老師講過的知識(shí),結(jié)合自身主觀和客觀因素,制定了本次課程設(shè)計(jì)的目標(biāo),并齊心協(xié)力,完成了此次設(shè)計(jì)。通過本次的課程設(shè)計(jì),我們還知道了許多自身存在的不足,例如僅掌握了一種加密算法,但在日益發(fā)達(dá)的社
23、會(huì)商業(yè)等領(lǐng)域,加密解密需要做的還非常多,并且 Java 領(lǐng)域博大精深,我們現(xiàn)在只是學(xué)到了它的一點(diǎn)皮毛而已,所以還需多多努力。但是通過這些我還是學(xué)到了很多東西,先不說其他的,我最起碼最基礎(chǔ)的加密算法,而且以后可以運(yùn)用到自己想要保密的文件當(dāng)中去。通過這次課程設(shè)計(jì),我用 JAVA 語言實(shí)現(xiàn),我這是我對(duì) JAVA 語言有了根深的了解鞏固了以前學(xué)到的知識(shí),也學(xué)習(xí)到了新的知識(shí),課程設(shè)計(jì)雖然暫告一個(gè)段落,但我們學(xué)習(xí) Java 的步伐不會(huì)終止。五、測(cè)試結(jié)果五、測(cè)試結(jié)果5.1 加密加密 首先在我機(jī)器 C 盤文件夾名為 1 的文件夾離創(chuàng)建一個(gè)名為 Example.txt 文本文件用做測(cè)試。 運(yùn)行程序,彈出如圖 5
24、-1-1 的對(duì)話框課程設(shè)計(jì)說明書用紙- 13 - 圖圖 5-1-15-1-1 運(yùn)行程序運(yùn)行程序點(diǎn)擊“文件” ,選擇“打開” ,即彈出“打開”對(duì)話框,選擇一個(gè)文本文件,如圖 5-1-2。 圖圖 5-1-25-1-2 選擇加密文件選擇加密文件課程設(shè)計(jì)說明書用紙- 14 - 選擇文件后,即可在“文件瀏覽窗口”中顯示文本的信息,點(diǎn)擊“加密”按鈕,即可在“文件瀏覽窗口”看到加密后的文件(如圖 5-1-3) 。 圖圖 5-1-35-1-3 生成加密文件生成加密文件對(duì)加密后的密文進(jìn)行保存,選擇“文件”下的“保存” ,即可彈出“保存”對(duì)話框,選擇路徑,即可保存,如圖 5-1-4 和 5-1-5 所示。課程設(shè)計(jì)
25、說明書用紙- 15 - 圖圖 5-1-45-1-4 保存加密文件保存加密文件 圖圖 5-1-55-1-5 瀏覽加密文件瀏覽加密文件5.2 解密解密解密操作中對(duì)文件選擇,密碼輸入和加密操作是一樣的。將剛剛加密的程序進(jìn)行解密,打開密文文件,選擇“加密與解密”窗口下“解密”按鈕,點(diǎn)擊,即可解密,如圖 5-2 所示。圖圖 5-25-2 生成解密文件生成解密文件課程設(shè)計(jì)說明書用紙- 16 -六、主要參考資料六、主要參考資料 1 Java 語言程序設(shè)計(jì)教程邱桃榮 機(jī)械工業(yè)出版社 2 Java 程序設(shè)計(jì)試驗(yàn)指導(dǎo)陳軼 姚曉昆 清華大學(xué)出版社 3 耿祥義等.Java 課程設(shè)計(jì)(第 2 版).北京:清華大學(xué)出版社
26、,2006.8 4 耿祥義等.Java 實(shí)用教程(第三版).北京:清華大學(xué)出版社,2006.8 5 埃克爾. Java 編程思想(第 4 版).北京:機(jī)械工業(yè)出版社,2007.6 6 通過互連網(wǎng)檢索相關(guān)資料。七、附錄七、附錄源代碼:源代碼:import java.awt.*;import java.awt.event.*;import java.io.*;import javax.swing.*;class Myframe extends Frame implements ActionListener FileDialog filedialog_save,filedialog_load;But
27、ton button1,button2;Label label;MenuBar bar;Menu menu;MenuItem itemOpen,itemSave;TextArea texta;Myframe(String s) /創(chuàng)建對(duì)話框課程設(shè)計(jì)說明書用紙- 17 -super(s); texta= new TextArea(38,160);button1= new Button(加密);button2= new Button(解密);menu=new Menu(文件);itemOpen=new MenuItem(打開);itemSave=new MenuItem(保存);label=new
28、 Label(文件瀏覽窗口);itemOpen.addActionListener(this);itemSave.addActionListener(this);button1.addActionListener(this);button2.addActionListener(this);filedialog_save=new FileDialog(this,保存文件對(duì)話框,FileDialog.SAVE);filedialog_load=new FileDialog(this,打開文件對(duì)話框,FileDialog.LOAD);filedialog_save.addWindowListener
29、(new WindowAdapter()public void windowClosing(WindowEvent e)filedialog_save.setVisible(false););filedialog_load.addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)filedialog_load.setVisible(false);課程設(shè)計(jì)說明書用紙- 18 -);Box box1=Box.createHorizontalBox();/創(chuàng)建一個(gè)從左到右顯示其組件的 box1;Box
30、box2=Box.createVerticalBox();/創(chuàng)建一個(gè)從上到下顯示其組件的 box2; Box 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
31、(panel1);box2.add(label);panel2.add(texta);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ì)說明書用紙- 19 - System.e
32、xit(0); );/“關(guān)閉”窗口事件;public void actionPerformed(ActionEvent e)/查找讀入文件if(e.getSource()=itemOpen)filedialog_load.setVisible(true);texta.setText(null);String s;if(filedialog_load.getFile()!=null)tryFile file=new File(filedialog_load.getDirectory(),filedialog_load.getFile();FileReader file_reader=new FileRead
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題申報(bào)參考:建構(gòu)自主知識(shí)體系視域下的檔案學(xué)術(shù)語革命研究
- 2025版委托擔(dān)保合同樣本:醫(yī)療器械注冊(cè)融資擔(dān)保協(xié)議6篇
- 2025版小學(xué)學(xué)生安全責(zé)任追究與保障協(xié)議15篇
- 二零二五版煤炭行業(yè)運(yùn)輸成本控制協(xié)議4篇
- 2025年貨運(yùn)從業(yè)資格證網(wǎng)上考核app
- 2025年度文化創(chuàng)意產(chǎn)業(yè)合作合同4篇
- 個(gè)人住宅租賃合同模板(2024年修訂版)版B版
- 2025版?zhèn)€人小產(chǎn)權(quán)房屋買賣合同范本及操作指南4篇
- 2024物業(yè)公司提供住宅小區(qū)互聯(lián)網(wǎng)接入服務(wù)合同
- 2025版學(xué)校浴池?zé)崴?yīng)系統(tǒng)優(yōu)化承包合同3篇
- 南通市2025屆高三第一次調(diào)研測(cè)試(一模)地理試卷(含答案 )
- 2025年上海市閔行區(qū)中考數(shù)學(xué)一模試卷
- 2025中國(guó)人民保險(xiǎn)集團(tuán)校園招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 重癥患者家屬溝通管理制度
- 法規(guī)解讀丨2024新版《突發(fā)事件應(yīng)對(duì)法》及其應(yīng)用案例
- IF鋼物理冶金原理與關(guān)鍵工藝技術(shù)1
- 小學(xué)二年級(jí)數(shù)學(xué)口算練習(xí)題1000道
- 化學(xué)-福建省龍巖市2024屆高三下學(xué)期三月教學(xué)質(zhì)量檢測(cè)(一模)試題和答案
- 凸優(yōu)化在經(jīng)濟(jì)學(xué)與金融學(xué)中的應(yīng)用
- 家譜、宗譜頒譜慶典講話
- 高速公路收費(fèi)員培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論