java課程設(shè)計(jì)ATM機(jī)_第1頁
java課程設(shè)計(jì)ATM機(jī)_第2頁
java課程設(shè)計(jì)ATM機(jī)_第3頁
java課程設(shè)計(jì)ATM機(jī)_第4頁
java課程設(shè)計(jì)ATM機(jī)_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、java課程設(shè)計(jì)報(bào)告題目: 專業(yè): 班級: 姓名: 學(xué)號: 2009年6月 信息工程學(xué)院目 錄1 課程設(shè)計(jì)過程概述12 課程設(shè)計(jì)題目描述和基本設(shè)計(jì)要求23 系統(tǒng)需求分析33.1 功能需求分析33.2 其他需求分析34 系統(tǒng)設(shè)計(jì)44.1 總體設(shè)計(jì)44.2 ATM柜員機(jī)界面設(shè)計(jì)44.3 各功能模塊設(shè)計(jì)64.3.1 登陸頁面模塊設(shè)計(jì)64.3.2 選擇服務(wù)模塊設(shè)計(jì)74.3.3 取款模塊設(shè)計(jì)94.3.4 修改密碼模塊設(shè)計(jì)104.3.5 退卡模塊設(shè)計(jì)114.4 異常處理情況說明115 系統(tǒng)實(shí)現(xiàn)與測試126 課程設(shè)計(jì)總結(jié)146.1 遇到的問題及解決辦法146.2 心得體會14附錄源代碼16參考文獻(xiàn)28第一章

2、 課程設(shè)計(jì)過程概述2009年6月,JAVA游戲開發(fā)課程設(shè)計(jì)在實(shí)驗(yàn)樓三樓機(jī)房進(jìn)行,持續(xù)時(shí)間為兩周。這次課程設(shè)計(jì)的主要目的是結(jié)合面向?qū)ο蟪绦蛟O(shè)計(jì)課程,培養(yǎng)我們面向?qū)ο筌浖_發(fā)的思維,初步了解軟件開發(fā)的一般流程,提高用JAVA編程的實(shí)際動手能力并增強(qiáng)大家對面向?qū)ο蟮牧私狻_@次課程設(shè)計(jì)的主要內(nèi)容是獨(dú)立用JAVA語言開發(fā)一個(gè)小的應(yīng)用程序。我開發(fā)了一個(gè)ATM柜員機(jī)。第二章 課程設(shè)計(jì)題目描述和基本設(shè)計(jì)要求我設(shè)計(jì)的ATM柜員機(jī)主要是由各個(gè)Windows窗口組成,它是由登錄頁面、選擇服務(wù)、取款、查詢余額、修改密碼和退卡等功能。它的各種按鈕的事件和功能可以簡單的模擬ATM柜員機(jī)的要求。第三章系統(tǒng)需求分析3.1 功

3、能需求分析本ATM柜員機(jī)的主要功能如下所述:要求使用圖形用戶界面。當(dāng)輸入給定的卡號和密碼(初始卡號為和密碼為)時(shí),系統(tǒng)能登錄ATM柜員機(jī)系統(tǒng),用戶可以按照以下規(guī)則進(jìn)行:l 查詢余額:初始余額為50000元l ATM取款:每次取款金額為100的倍數(shù),總額不超過5000元,支取金額不允許透支。l ATM存款:不能出現(xiàn)負(fù)存款。l 修改密碼:只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況下才可以成功修改密碼。3.2 其他需求分析(1)性能描述實(shí)時(shí)性好、靈活性強(qiáng)、易于不同年齡階段的人操作。(2)設(shè)計(jì)約束開發(fā)工具:JCrator ProV3.5.0運(yùn)行環(huán)境:Windows 2000以上能實(shí)現(xiàn)用戶所定

4、義的各項(xiàng)需求。(3)界面要求以Windows窗口形式顯示,標(biāo)題欄為ATM柜員機(jī)名稱,右上角有最小化按鈕、最大化按鈕、關(guān)閉按鈕,不同的窗口中有不同的按鈕和選擇菜單。第四章系統(tǒng)設(shè)計(jì)4.1 總體設(shè)計(jì)我所設(shè)計(jì)的ATM柜員機(jī)主要是由登錄頁面模塊還由選擇服務(wù)模塊組成,其中選擇服務(wù)模塊又由取款模塊、查詢余額模塊、修改密碼模塊、退卡模塊組成。其功能結(jié)構(gòu)圖如下所示:圖1 ATM功能結(jié)構(gòu)示意圖4.2 ATM柜員機(jī)界面設(shè)計(jì)我覺得一個(gè)系統(tǒng)的界面應(yīng)該要簡單明了,當(dāng)然樣式美觀就更好了。我設(shè)計(jì)的界面主要是由窗體組成,操作簡單。而每一個(gè)窗口則執(zhí)行相應(yīng)的功能。一個(gè)系統(tǒng)界面的好壞直接影響到用戶的操作,界面設(shè)計(jì)要求樣式美觀、簡單明

5、了、方便易操作。我設(shè)計(jì)的界面主要分為窗體、菜單、按鈕和文本輸入框幾個(gè)部分,分別執(zhí)行相應(yīng)的操作。(1)窗體的設(shè)計(jì)窗體整個(gè)框架使用Frame類構(gòu)造,F(xiàn)rame有自己的外邊框和自己的標(biāo)題,創(chuàng)建Frame時(shí)可以指定其窗口標(biāo)題,我創(chuàng)建的窗口標(biāo)題是各個(gè)不同功能的模塊的名字,比如說查詢余額,還有取款等。相應(yīng)源代碼為:WindowBox(String s,Account act)super(“ATM柜員機(jī)”); 、Selection(String s,Account act)super(s);向Frame窗口中添加組件使用add()。例如:button1 = new Button(存款);p1.add(but

6、ton1);this.add(p1);每個(gè)Frame在其右上角都有三個(gè)控制圖標(biāo),分別代表將窗口最小化、窗口最大化和關(guān)閉的操作,其中最小化和最大化操作Frame可自動完成,而關(guān)閉窗口操作實(shí)現(xiàn)需要書寫有關(guān)的代碼,在我的程序中我采用的是對WINDOWS_CLOSING事件做出響應(yīng),調(diào)用dispose()方法關(guān)閉窗口。Frame也可以引發(fā)WindowsEvent類代表的窗口事件。相應(yīng)源代碼為:addWindowListener(new WindowAdapter() /窗口偵聽器,以從此窗口接收窗口事件public void windowClosing(WindowEvent e) /處理窗口關(guān)閉事件

7、 System.exit(0););(2)窗體的主要結(jié)構(gòu)的設(shè)計(jì)我所設(shè)計(jì)的窗口的主要結(jié)構(gòu)的特點(diǎn)就是每個(gè)窗口都對應(yīng)著一個(gè)特定的功能。比如說報(bào)各種各樣的錯,還有各種查詢余額、取款、選擇服務(wù)等,所以它們都是由各種按鈕和文本框,標(biāo)簽組成的,而聯(lián)系各個(gè)窗體成為一個(gè)整體的就是各個(gè)按鈕的監(jiān)聽事件。所以整個(gè)設(shè)計(jì)就趨向簡單化了。為了定義各個(gè)按鈕所對應(yīng)的命令和操作,首先需要將各個(gè)按鈕注冊給實(shí)現(xiàn)了動作事件的監(jiān)聽接口ActionListener的監(jiān)聽者,然后為監(jiān)聽者定義actionPerformed(ActionEvent e)方法,在這個(gè)方法中調(diào)用e.getSource()或e.getActionCommand()來

8、判斷用戶點(diǎn)擊的菜單子項(xiàng),并完成這個(gè)菜單子項(xiàng)定義的操作。4.3 各功能模塊設(shè)計(jì)4.3.1 登陸頁面模塊設(shè)計(jì)與ATM柜員機(jī)打交道比較多的,也是大家對安全比較關(guān)心的問題:密碼。所以第一個(gè)界面就是要輸入密碼和卡號才能繼續(xù)服務(wù)。我定義了文本框累的對象tf1,tf2。抓藥是用于輸入單行的文本;文本區(qū)調(diào)用public String getText()方法,獲取用戶想要的字符串。用來判斷輸入的密碼和卡號是否正確,如果不正確的話,則彈出密碼或卡號錯誤的警告框,并用dispose()關(guān)掉窗口。此模塊相應(yīng)的部分源代碼為:public void actionPerformed(ActionEvent e)Accoun

9、t act; String card; String pwd;act=new Account(,Devil,50000);/初始化 /*選擇各種服務(wù)*/if(e.getSource() = button1)String number1,number2; number1=tf1.getText();number2=tf2.getText();/*判斷密碼和卡號是否正確*/if(act.get_Code().equals(number1)&(act.get_Password().equals(number2)dispose(); /*卡號和密碼都正確則進(jìn)入功能選擇窗口*/Selection s =

10、 new Selection(選擇服務(wù),act);elsedispose();ErrorWarn ew = new ErrorWarn(消息!,act); /*退卡*/if(e.getSource()=button2)System.exit(0);dispose(); 4.3.2 選擇服務(wù)模塊設(shè)計(jì)在選擇服務(wù)模塊中,有各種ATM的服務(wù)功能,只要用戶在該界面中選擇按鈕,它就會彈出各個(gè)相應(yīng)的界面。每一個(gè)按鈕都有監(jiān)聽器,在選擇了按鈕后,java.awt.event中的ActionEvent類創(chuàng)建一個(gè)事件對象,并將它傳遞給方法public void actionPerformed(ActionEvent

11、 e)中的參數(shù)e,監(jiān)視器就會知道所發(fā)生的事件,對此事件進(jìn)行處理。其中的部分源代碼為:p.add(new Label(請選擇你要的服務(wù));this.add(p);button1 = new Button(存款);p1.add(button1);this.add(p1);button2 = new Button(取款);p2.add(button2);this.add(p2);button3 = new Button(查詢余額);p3.add(button3);this.add(p3);button4 = new Button(退出);p4.add(button4);this.add(p4);bu

12、tton5 = new Button(修改密碼);p5.add(button5);this.add(p5);this.addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););button2.addActionListener(this);button3.addActionListener(this);button4.addActionListener(this);button5.addActionListener(this);/setLayout(new Grid

13、Layout();setBounds(150,150,200,200);setVisible(true);validate();public void actionPerformed(ActionEvent e)if(e.getSource()=button2)/取款dispose();GetBalance gb = new GetBalance(取款,act);if(e.getSource()=button3)/查詢余額Query q =new Query(查詢余額,act);dispose();else if(e.getSource()=button4)/退出System.exit(0);

14、dispose();else if(e.getSource()=button5)/修改密碼ChangePassword cp = new ChangePassword(修改密碼,act);dispose();4.3.3 取款模塊設(shè)計(jì)在取款模塊中,和其他的界面也是同樣的結(jié)構(gòu)。也是有一個(gè)文本框和一個(gè)按鈕還有標(biāo)簽組成的。用戶在文本框中輸入他想取的數(shù)額,但是必須是100的倍數(shù),而且每一次最多只能取5000塊。當(dāng)然了取款的時(shí)候也不能超過卡里的余額,再就是卡里的余額不可以為負(fù),否則就會彈出報(bào)錯的窗口。其方法為:if(e.getSource()=button) /*判斷余額是否為負(fù)*/if(act.get_

15、Money()0)dispose();ErrorWarn4 ew4 = new ErrorWarn4(消息!,act); /*判斷取款數(shù)額是否小于卡里余額*/else if(money=5000)dispose();ErrorWarn6 ew6 = new ErrorWarn6(消息!,act);act.set_Balance(money);/重新設(shè)置卡里的余額this.setVisible(false); /*取款后就再次進(jìn)入選擇界面*/ Selection s = new Selection(選擇服務(wù),act); /dispose();else if(moneyact.get_Money(

16、)dispose();ErrorWarn5 ew5 = new ErrorWarn5(消息!,act);4.3.4 修改密碼模塊設(shè)計(jì)在修改密碼模塊中,首先你必須要輸入你的舊密碼是否正確,否則就會報(bào)錯。再一個(gè)就是要兩次輸入你的新密碼,且兩次藥匹配,否則也會報(bào)錯,然后再重新回到修改密碼的界面。在修改密碼時(shí)用到的方法為:/*判斷舊密碼是是否正確*/if(pwd2.equals(act.get_Password()/*判斷兩次輸入的密碼是否匹配*/if(pwd3.equals(pwd4) /*如果都正確的話就設(shè)置新密碼*/act.setPassword(pwd3);dispose();Selectio

17、n s = new Selection(選擇,act);else dispose();ErrorWarn2 ew2 = new ErrorWarn2(消息,act); else this.setVisible(false);ErrorWarn3 ew1 = new ErrorWarn3(消息,act); dispose();4.3.5 退卡模塊設(shè)計(jì)在退卡模塊設(shè)計(jì)中,這個(gè)方法就更加的簡單了,它只是用了if(e.getSource()=button4)/退出System.exit(0);dispose();這個(gè)方法就可以實(shí)現(xiàn)了,這里就不再多說了。4.4 異常處理情況說明(1)打開、保存文件時(shí)的異常

18、處理需要處理的異常:IOException(2)數(shù)據(jù)庫訪問時(shí)的異常處理需要處理的異常:SQLException(3)加載類時(shí)的異常處理需要處理的異常:ClassNotFindException,當(dāng)應(yīng)用程序試圖使用Class類中的forName方法通過字符串名加載類時(shí),但是沒有找到具有指定名稱的類的定義。(4)加載URL時(shí)的異常需要處理的異常:MalformedURLException,拋出這一異常指示出現(xiàn)了錯誤的 URL?;蛘咴谝?guī)范字符串中找不到任何合法協(xié)議,或者無法分析字符串。第五章 系統(tǒng)實(shí)現(xiàn)與測試(1)打開DOS,編譯運(yùn)行程序后,將會看到如下的界面,如圖2所示。如果輸入的密碼或卡號不正確的

19、話就會報(bào)右下圖的錯誤。圖2 主界面登陸頁面(2)選擇服務(wù)界面效果當(dāng)輸入的密碼和卡號正確,單擊確定后就會進(jìn)入到選擇服務(wù)的界面,如圖3所示。然后就可以選擇所需要的服務(wù)了。圖3 選擇服務(wù)界面(3)取款界面,如圖4所示。圖4 取款界面當(dāng)輸入的錢數(shù)不是100的倍數(shù)或每一次大于5000時(shí)就會報(bào)圖5的錯誤。圖5 輸入錯誤1當(dāng)取款時(shí)如果超過卡里的余額的話就會報(bào)圖6的錯誤。圖6 輸入錯誤2(4)查詢余額界面,如圖7所示。圖7 查詢余額界面經(jīng)過測試,所有的功能基本上都實(shí)現(xiàn)了,而且運(yùn)行正常。第六章 課程設(shè)計(jì)總結(jié)6.1 遇到的問題及解決辦法在此次課程設(shè)計(jì)中,我遇到了一些問題,如:對于面向?qū)ο蟮姆椒私獠粔蛲笍?,運(yùn)用到

20、實(shí)際的軟件開發(fā)中存在著困難;對于Java語言,只學(xué)習(xí)到了一些最基本的知識,這導(dǎo)致編寫程序時(shí)經(jīng)常出現(xiàn)一些語法錯誤,而且要在短時(shí)間內(nèi)用Java語言來設(shè)計(jì)一個(gè)具體的系統(tǒng)是一個(gè)較大的挑戰(zhàn);還有對于正規(guī)開發(fā)一個(gè)系統(tǒng)的流程不熟悉,適應(yīng)起來比較慢,編寫各個(gè)模塊相對應(yīng)的操作時(shí),自己感覺難以動手,這表明所學(xué)的知識不能靈活運(yùn)用到實(shí)際中。 對于以上的問題,自己有清楚的認(rèn)識,解決辦法是需要大量閱讀相關(guān)的書籍,對于書上以及網(wǎng)站上下載的資料中的Java實(shí)例必須有清楚的理解,還有就是多跟精通此方面的老師和同學(xué)交流,取其精華。對于實(shí)際動手能力與系統(tǒng)開發(fā)的流程的適應(yīng),必須多進(jìn)行實(shí)際的練習(xí)與操作,才能有大的進(jìn)步。6.2 心得體會

21、在這次的學(xué)年度課程設(shè)計(jì)中,我主要運(yùn)用了Java語言的界面設(shè)計(jì)、異常處理、Awt控件、Swing控件,輸入輸出流等,綜合運(yùn)用了Java語言。我深刻感受到了面向?qū)ο笳Z言中類庫的強(qiáng)大功能,掌握了運(yùn)用Java中的類實(shí)現(xiàn)某些基本功能,并學(xué)會了自己查詢使用類的方法,為以后的面向?qū)ο笳Z言的自學(xué)奠定了基礎(chǔ)。通過這兩個(gè)禮拜的課程設(shè)計(jì)我真的學(xué)到了很多的東西,當(dāng)然這也和我的同學(xué)的幫助是離不開的。好了,下面就談一下我在這些天的體會吧:在這次的課程設(shè)計(jì)中,主要是運(yùn)用JAVA語言來編寫一個(gè)小的應(yīng)用程序,當(dāng)然還可以用其他的技術(shù)來輔助了。在這個(gè)小應(yīng)用程序當(dāng)中,我用了Java外還用了Swing控件。輸入輸出流等技術(shù)。由于以前學(xué)

22、的不是很扎實(shí),而且還有些知識我們都是沒有學(xué)過的,這就要求我們?nèi)ゲ橄嚓P(guān)的書籍,還有就是和同學(xué)之間的交流。正因?yàn)檫@樣,才鍛煉了我的自學(xué)的能力,還有就是加深了我對各個(gè)知識點(diǎn)的認(rèn)識,并且提高了我對專業(yè)的學(xué)習(xí)的興趣,為我以后的學(xué)習(xí)打下了基礎(chǔ)。此外,我還感受到了面向?qū)ο笳Z言的類庫的強(qiáng)大的功能,掌握了運(yùn)用JAVA中的類實(shí)現(xiàn)某些基本功能,并學(xué)會了自己查詢使用類的方法,也就是要會用API文檔,為以后更好的學(xué)習(xí)面向?qū)ο笳Z言奠定了基礎(chǔ)。通過將近兩周的努力,這次課程設(shè)計(jì)終于結(jié)束了,在這個(gè)過程當(dāng)中,我學(xué)到了很多的知識,同時(shí)也感謝我的同學(xué)的幫助和指導(dǎo)。在以后的學(xué)習(xí)當(dāng)中,我會更加努力的學(xué)習(xí)好專業(yè)知識,并將所學(xué)的知識用于實(shí)踐

23、當(dāng)中去,以便牢固掌握知識。附錄源代碼import javax.swing.*;import java.awt.*;import javax.swing.border.*;import java.awt.event.*;import java.io.*;/*登陸頁面首窗口*/class WindowBox extends Frame implements ActionListenerBox baseBox,box1,box2;TextField tf1,tf2;Button button1;Button button2;WindowBox(String s)/構(gòu)造方法super(s); tf1

24、= new TextField(6); tf2 = new TextField(6);box1= Box.createVerticalBox;box1.add(new Label(請輸入你的卡號); /輸入卡號box1.add(Box.createVerticalStrut(8);box1.add(new Label(請輸入你的密碼);/輸入密碼box2=Box.createVerticalBox();box2.add(tf1);/box2.add(new TextField(16);box2.add(Box.createVerticalStrut(8);box2.add(tf2);/box2

25、.add(new TextField(16);baseBox=Box.createHorizontalBox();baseBox.add(box1);baseBox.add(Box.createHorizontalStrut(10);baseBox.add(box2);add(baseBox);button1= new Button(確定);/加入按鈕button1.addActionListener(this);add(button1);button2 = new Button(退卡);/退卡按鈕button2.addActionListener(this);add(button2);set

26、Layout(new FlowLayout();/*監(jiān)聽器*/this.addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););setBounds(120,125,200,175);setVisible(true);public void actionPerformed(ActionEvent e)Account act; String card; String pwd;act=new Account(,Devil,50000);/初始化 /*選擇各種服務(wù)*/if

27、(e.getSource() = button1)String number1,number2;/輸入的兩個(gè)卡號和密碼的變量 number1=tf1.getText();number2=tf2.getText();/*判斷兩次輸入的卡號和密碼是否正確*/if(act.get_Code().equals(number1)&(act.get_Password().equals(number2)dispose();Selection s = new Selection(選擇服務(wù),act);elsedispose();ErrorWarn ew = new ErrorWarn(消息!,act);/報(bào)輸入

28、密碼或卡號不正確if(e.getSource()=button2)System.exit(0);dispose();/退出 /*主函數(shù)*/class ATMpublic static void main(String args)new WindowBox(登錄頁面);/*選擇服務(wù)*/import java.awt.*;import java.awt.event.*;class Selection extends Frame implements ActionListenerButton button1,button2,button3,button4,button5;Panel p1 = new

29、 Panel();Panel p2 = new Panel();Panel p3 = new Panel();Panel p4 = new Panel();Panel p5 = new Panel();Panel p = new Panel();Account act;public Selection()Selection(String s,Account act)super(s);this.act=act;this.setLayout(null);this.setLayout(new GridLayout(6,1);p.add(new Label(請選擇你要的服務(wù));this.add(p);

30、 /*各種服務(wù)功能*/button1 = new Button(存款);p1.add(button1);this.add(p1);button2 = new Button(取款);p2.add(button2);this.add(p2);button3 = new Button(查詢余額);p3.add(button3);this.add(p3);button4 = new Button(退出);p4.add(button4);this.add(p4);button5 = new Button(修改密碼);p5.add(button5);this.add(p5);this.addWindowL

31、istener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););button2.addActionListener(this);button3.addActionListener(this);button4.addActionListener(this);button5.addActionListener(this);setBounds(150,150,200,200);setVisible(true);validate();public void actionPerformed(Actio

32、nEvent e)if(e.getSource()=button2)/取款dispose();GetBalance gb = new GetBalance(取款,act);if(e.getSource()=button3)/查詢余額Query q =new Query(查詢余額,act);dispose();else if(e.getSource()=button4)/退出System.exit(0);dispose();else if(e.getSource()=button5)/修改密碼ChangePassword cp = new ChangePassword(修改密碼,act);dis

33、pose();/*class Test4public static void main(String args) Selection s = new Selection(選擇);*/*取款功能*/import javax.swing.*;import java.awt.*;import javax.swing.border.*;import java.awt.event.*;class GetBalance extends Frame implements ActionListenerBox baseBox, box1,box2;Button button;TextField tf;Accou

34、nt act;GetBalance(String s,Account act)/構(gòu)造函數(shù)super(s);this.act=act;button=new Button(確定);Panel panel = new Panel();Panel panel1 = new Panel();tf = new TextField(6);this.setLayout(new GridLayout(2,1);panel1.add(new Label(請輸入你想取錢的數(shù)目);panel1.add(tf);panel.add(button);this.add(panel1);this.add(panel);but

35、ton.addActionListener(this);this.addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););setBounds(200,200,150,150);this.setVisible(true);public void actionPerformed(ActionEvent e)/System.out.println(e.getActionCommand();double money;money = Double.parseDouble(t

36、f.getText().trim();if(e.getSource()=button)if(act.get_Money()0)/判斷余額是否為負(fù)dispose();ErrorWarn4 ew4 = new ErrorWarn4(消息!,act);else if(money=5000)/取錢數(shù)為100的倍數(shù)或不大于5000dispose();ErrorWarn6 ew6 = new ErrorWarn6(消息!,act);act.set_Balance(money);/重置余額this.setVisible(false); Selection s = new Selection(選擇服務(wù),act

37、);/返回選擇服務(wù)窗口 /dispose();else if(moneyact.get_Money()判斷取款數(shù)額是否大于余額dispose();ErrorWarn5 ew5 = new ErrorWarn5(消息!,act);/*public static void main(String args)GetBalance test = new GetBalance(dfdf);GetBalance gb = new GetBalance(取款);/*修改密碼功能*/import javax.swing.*;import java.awt.*;import javax.swing.border

38、.*;import java.awt.event.*;class ChangePassword extends Frame implements ActionListenerPanel panel1 = new Panel();Panel panel2 = new Panel();Panel panel3 = new Panel();Panel panel = new Panel();TextField tf4,tf5,tf6;Button button;Account act;ChangePassword(String s,Account act)super(s);this.act=act;

39、tf4 = new TextField(6);tf5 = new TextField(6);tf6 = new TextField(6);button = new Button(確定);button.addActionListener(this);/*建立新密碼*/panel1.add(new Label(請輸入你的舊密碼:);panel1.add(tf4);panel2.add(new Label(請輸入你的新密碼:);panel2.add(tf5);panel3.add(new Label(請?jiān)俅屋斎肽愕男旅艽a);panel3.add(tf6);panel.add(button);this

40、.add(panel1);this.add(panel2);this.add(panel3);this.add(panel);setLayout(new GridLayout(4,1);setBounds(200,200,250,250);this.setVisible(true);/*窗口事件*/this.addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););/*判斷事件源,看條件是否成立再修改密碼*/public void actionPerformed(A

41、ctionEvent e)if(e.getSource()=button)String pwd2,pwd3,pwd4; pwd2 = tf4.getText(); pwd3 = tf5.getText(); pwd4 = tf6.getText();if(pwd2.equals(act.get_Password()/判斷舊密碼是否正確if(pwd3.equals(pwd4)/判斷兩次輸入的新密碼是個(gè)匹配act.setPassword(pwd3);/啟用新的密碼dispose();Selection s = new Selection(選擇,act);/返回選擇服務(wù)窗口else /this.se

42、tVisible(true); /ErrorWarn2 ew = new ErrorWarn2(消息,act); dispose();ErrorWarn2 ew2 = new ErrorWarn2(消息,act); else this.setVisible(false);ErrorWarn3 ew1 = new ErrorWarn3(消息,act); dispose();/*查詢余額功能*/import javax.swing.*;import java.awt.*;import javax.swing.border.*;import java.awt.event.*;class Query extends Frame implements ActionListener/Account act;Button button;Account act;Query(String s,Account act)/構(gòu)造函數(shù)super(s);this.act = act;butt

溫馨提示

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

最新文檔

評論

0/150

提交評論