模擬銀行存儲實驗---GUI實現

          Posted on 2006-10-26 08:15 久城 閱讀(566) 評論(0)  編輯  收藏 所屬分類: JavaTest
          把前兩天做的實驗用GUI實現...

          主要的接口都沒有變,所以實現比較容易...

          代碼如下:
          ??1/**
          ??2*title?模擬銀行存儲實驗——GUI實現
          ??3*@author?realsmy
          ??4*date?2006-10-26?8:10
          ??5*/

          ??6
          ??7import?java.io.*;
          ??8import?java.awt.*;
          ??9import?javax.swing.*;
          ?10import?java.awt.event.*;
          ?11import?javax.swing.JPanel.*;
          ?12
          ?13//login?applicatiion
          ?14class?Login?extends?JFrame{
          ?15????Container?c;
          ?16????JTextField?text;
          ?17????JPasswordField?password;
          ?18????MyPanel?panel;
          ?19????JLabel?label_name,label_password;
          ?20????JButton?button1,button2;
          ?21????String?lg_name,lg_password;
          ?22????File?fl;//帳戶資料文件聲明
          ?23????Login(){
          ?24????????super("模擬銀行存儲系統");
          ?25????????c?=?getContentPane();
          ?26????????c.setLayout(new?BorderLayout());
          ?27????????//初始化組件
          ?28????????text?=?new?JTextField();
          ?29????????password?=?new?JPasswordField();
          ?30????????label_name?=?new?JLabel("教工號?:");
          ?31????????label_password?=?new?JLabel("密????碼?:");
          ?32????????panel?=?new?MyPanel();
          ?33????????button1?=?new?JButton("LOGIN");
          ?34????????button2?=?new?JButton("RESET");
          ?35????????//添加監聽
          ?36????????button1.addActionListener(new?ActionListener()
          ?37????????{
          ?38????????????public?void?actionPerformed(ActionEvent?e)
          ?39????????????{
          ?40????????????????lg_name?=?text.getText();
          ?41????????????????lg_password??=?password.getText();
          ?42????????????????if?(?lg_name.equals("admin")?&&?lg_password.equals("admin")){
          ?43????????????????????setVisible(false);
          ?44????????????????????GuanLi?gl?=?new?GuanLi();?
          ?45????????????????????gl.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          ?46????????????????}

          ?47????????????????else{
          ?48????????????????????try{
          ?49????????????????????????fl?=?new?File("frozen",lg_name+".txt");
          ?50????????????????????????if(fl.exists()){
          ?51????????????????????????????JOptionPane.showMessageDialog(null,"對不起,您的帳戶已被凍結!");
          ?52????????????????????????}

          ?53????????????????????????else{
          ?54????????????????????????????fl?=?new?File(lg_name+".txt");
          ?55????????????????????????????//判斷帳戶是否存在
          ?56????????????????????????????if(!fl.exists()){
          ?57????????????????????????????????JOptionPane.showMessageDialog(null,"對不起,您輸入的帳戶并不存在,請重新輸入:");
          ?58????????????????????????????}

          ?59????????????????????????????else{
          ?60????????????????????????????//帳戶存在,開始判斷密碼
          ?61????????????????????????????????BufferedReader?reader?=?new?BufferedReader(new?FileReader(?lg_name?+?".txt"));
          ?62????????????????????????????????String?pw?=?reader.readLine();
          ?63????????????????????????????????int?money?=?Integer.parseInt(reader.readLine());
          ?64????????????????????????????????//判斷密碼
          ?65????????????????????????????????if(lg_password.equals(pw)){
          ?66????????????????????????????????????JOptionPane.showMessageDialog(null,"登陸成功\n"+"您的用戶尚有余額"+money+"");
          ?67????????????????????????????????????ZhangHu?zh?=?new?ZhangHu(lg_name,lg_password,money);
          ?68????????????????????????????????????setVisible(false);
          ?69????????????????????????????????????YongHu?yh?=?new?YongHu(zh);
          ?70????????????????????????????????????yh.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          ?71????????????????????????????????}

          ?72????????????????????????????????else{
          ?73????????????????????????????????????JOptionPane.showMessageDialog(null,"對不起,您輸入的密碼不正確,請重新輸入:");
          ?74????????????????????????????????}

          ?75????????????????????????????}

          ?76????????????????????????}
          ????????
          ?77????????????????????}
          catch(HeadlessException?a){}catch(IOException?b){}
          ?78????????????????}

          ?79????????????}

          ?80????????}
          );
          ?81????????button2.addActionListener(new?ActionListener()
          ?82????????{
          ?83????????????public?void?actionPerformed(ActionEvent?e)
          ?84????????????{
          ?85????????????????text.setText("");
          ?86????????????????password.setText("");
          ?87????????????}

          ?88????????}
          );
          ?89
          ?90????????//設置容器
          ?91????????panel.setLayout(new?GridLayout(3,2,10,15));
          ?92????????panel.add(label_name);
          ?93????????panel.add(text);
          ?94????????panel.add(label_password);
          ?95????????panel.add(password);
          ?96????????panel.add(button1);
          ?97????????panel.add(button2);
          ?98????????
          ?99????????c.add(panel,BorderLayout.CENTER);
          100????????setSize(300,200);
          101????????setLocation(300,200);
          102????????setVisible(true);
          103????}

          104}

          105
          106//定義管理界面
          107class?GuanLi?extends?JFrame{
          108????private?Container?c;
          109????JButton?button1,button2,button3,button4;
          110????MyPanel?panel;
          111????JLabel?label1,label2;
          112????Manager?manager;
          113????//String?name,password,password2;
          114????//int?money;
          115????GuanLi(){
          116????????super("模擬銀行存儲系統");
          117????????c?=?getContentPane();
          118????????c.setLayout(new?BorderLayout());
          119????????//數據初始化
          120????????//button?=?new?JButton("");
          121????????panel?=?new?MyPanel();
          122????????label1?=?new?JLabel("歡迎光臨趙家銀行!");
          123????????label2?=?new?JLabel("請選擇你要進行的操作:");
          124????????button1?=?new?JButton("1.添加帳戶");
          125????????button2?=?new?JButton("2.刪除用戶");
          126????????button3?=?new?JButton("3.凍結用戶");
          127????????button4?=?new?JButton("4.退出");
          128????????
          129????????//按鈕監聽
          130????????button1.addActionListener(new?ActionListener(){
          131????????????public?void?actionPerformed(ActionEvent?e){
          132????????????????manager?=?new?Manager();
          133????????????????manager.add();
          134????????????}

          135????????}
          );
          136????????button2.addActionListener(new?ActionListener(){
          137????????????public?void?actionPerformed(ActionEvent?e){
          138????????????????manager?=?new?Manager();
          139????????????????manager.del();
          140????????????}

          141????????}
          );
          142????????button3.addActionListener(new?ActionListener()
          143????????{
          144????????????public?void?actionPerformed(ActionEvent?e){
          145????????????????manager?=?new?Manager();
          146????????????????manager.froze();
          147????????????}

          148????????}
          );
          149????????button4.addActionListener(new?ActionListener()
          150????????{
          151????????????public?void?actionPerformed(ActionEvent?e)
          152????????????{
          153????????????????System.exit(0);
          154????????????}

          155????????}
          );
          156????????panel.setLayout(new?GridLayout(6,1,50,5));
          157????????//c.setLayout(new?GridLayout(4,2));
          158????????panel.add(label1);
          159????????panel.add(label2);
          160????????panel.add(button1);
          161????????panel.add(button2);
          162????????panel.add(button3);
          163????????panel.add(button4);
          164
          165????????c.add(panel);
          166????????setSize(400,300);
          167????????setLocation(300,200);
          168????????setVisible(true);
          169????}

          170}

          171
          172//定義用戶界面
          173class?YongHu?extends?JFrame{
          174????private?Container?c;
          175????JButton?button1,button2,button3,button4;
          176????MyPanel?panel;
          177????JLabel?label1,label2;
          178????ZhangHu?zhanghu,zhanghu2;
          179????//String?name,password,password2;
          180????String?toname,password;
          181????int?money,money2,money3;
          182????File?fl;
          183????YongHu(ZhangHu?zh){
          184????????super("模擬銀行存儲系統");
          185????????zhanghu?=?zh;
          186????????c?=?getContentPane();
          187????????c.setLayout(new?BorderLayout());
          188????????//數據初始化
          189????????panel?=?new?MyPanel();
          190????????label1?=?new?JLabel("歡迎光臨趙家銀行!");
          191????????label2?=?new?JLabel("請選擇你要進行的操作:");
          192????????button1?=?new?JButton("1.存錢");
          193????????button2?=?new?JButton("2.取錢");
          194????????button3?=?new?JButton("3.轉帳");
          195????????button4?=?new?JButton("4.退出");
          196????????
          197????????//按鈕監聽
          198????????button1.addActionListener(new?ActionListener(){
          199????????????public?void?actionPerformed(ActionEvent?e){
          200????????????????try{
          201????????????????????money?=?Integer.parseInt(JOptionPane.showInputDialog(null,"請輸入您要存入的金額:"));
          202????????????????}
          catch(HeadlessException?o){}
          203????????????????zhanghu.setM(money);
          204????????????????infile(zhanghu);
          205????????????}

          206????????}
          );
          207????????button2.addActionListener(new?ActionListener(){
          208????????????public?void?actionPerformed(ActionEvent?e){
          209????????????????try{
          210????????????????????money?=?Integer.parseInt(JOptionPane.showInputDialog(null,"請輸入您要取得的金額:"));
          211????????????????}
          catch(HeadlessException?o){}
          212????????????????zhanghu.getM(money);
          213????????????????infile(zhanghu);
          214????????????}

          215????????}
          );
          216????????button3.addActionListener(new?ActionListener()
          217????????{
          218????????????public?void?actionPerformed(ActionEvent?e){
          219????????????????try{
          220????????????????????while(true){
          221????????????????????????toname?=?JOptionPane.showInputDialog(null,"請輸入你要轉入的帳戶:");
          222????????????????????????fl?=?new?File(toname+".txt");
          223????????????????????????//判斷帳戶是否存在
          224????????????????????????if(!fl.exists()){
          225????????????????????????????System.out.println("對不起,您輸入的帳戶并不存在,請重新輸入:");
          226????????????????????????????continue;
          227????????????????????????}

          228????????????????????????else{
          229????????????????????????????break;
          230????????????????????????}

          231????????????????????}

          232????????????????????money2?=?Integer.parseInt(JOptionPane.showInputDialog(null,"請輸入你要轉入的金額:"));
          233????????????????????zhanghu.getM(money2);
          234????????????????????infile(zhanghu);
          235????????????????????BufferedReader?reader?=?new?BufferedReader(new?FileReader(?toname?+?".txt"));
          236????????????????????password?=?reader.readLine();
          237????????????????????money3?=?Integer.parseInt(reader.readLine());
          238????????????????????zhanghu2?=?new?ZhangHu(toname,password,money3);
          239????????????????????zhanghu2.setM(money2);
          240????????????????????infile(zhanghu2);
          241????????????????}
          catch(HeadlessException?o){}catch(IOException?p){}
          242????????????}

          243????????}
          );
          244????????button4.addActionListener(new?ActionListener()
          245????????{
          246????????????public?void?actionPerformed(ActionEvent?e)
          247????????????{
          248????????????????System.exit(0);
          249????????????}

          250????????}
          );
          251????????panel.setLayout(new?GridLayout(6,1,50,5));
          252????????panel.add(label1);
          253????????panel.add(label2);
          254????????panel.add(button1);
          255????????panel.add(button2);
          256????????panel.add(button3);
          257????????panel.add(button4);
          258
          259????????c.add(panel);
          260????????setSize(400,300);
          261????????setLocation(300,200);
          262????????setVisible(true);
          263????}

          264????public?void?infile(ZhangHu?p){
          265????????try{
          266????????????PrintWriter?writer?=?new?PrintWriter(new?BufferedWriter(new?FileWriter(p.getName()+".txt")));
          267????????????writer.println(p.getPassword());
          268????????????writer.println(p.getMoney());
          269????????????writer.flush()?;
          270????????}
          catch(IOException?e){}
          271????}

          272}

          273
          274//定義帳戶類
          275class?ZhangHu?{
          276????private?String?name;
          277????private?String?password;
          278????private?int?money;
          279????ZhangHu(){
          280????????
          281????}

          282????ZhangHu(String?name,String?password,?int?money){
          283????????this.name?=?name;
          284????????this.password?=?password;
          285????????this.money?=?money;
          286????}

          287????public?void?setM(int?a){
          288????????money?=?money?+?a;
          289????????try{
          290????????????JOptionPane.showMessageDialog(null,"存儲了"+a+"元,帳戶"+name+"尚有余額"+money+"");
          291????????}
          catch(HeadlessException?E){}
          292????}

          293????public?void?getM(int?a){
          294????????if(a?>?money){
          295????????????try{
          296????????????????JOptionPane.showMessageDialog(null,"對不起,您的金額不足"+a+"");
          297????????????}
          catch(HeadlessException?E){}
          298????????}

          299????????else{
          300????????????money?=?money?-?a;
          301????????????try{
          302????????????????JOptionPane.showMessageDialog(null,"取得了"+a+"元,帳戶"+name+"尚有余額"+money+"");
          303????????????}
          catch(HeadlessException?E){}
          304????????}

          305????}

          306????public?String?getName(){
          307????????return?name;
          308????}

          309????public?String?getPassword(){
          310????????return?password;
          311????}

          312????public?int?getMoney(){
          313????????return?money;
          314????}

          315????public?void?setName(String?name){
          316????????this.name?=?name;
          317????}

          318????public?void?setPassword(String?password){
          319????????this.password?=?password;
          320????}

          321????public?void?setMoney(int?money){
          322????????this.money?=?money;
          323????}

          324}

          325
          326//定義管理員類
          327class?Manager
          328{
          329????public?void?add(){
          330????????String?pw;
          331????????ZhangHu?zh?=?new?ZhangHu();
          332????????try{
          333????????????zh.setName(JOptionPane.showInputDialog(null,"請輸入您要添加的帳戶名:"));
          334????????????zh.setPassword(JOptionPane.showInputDialog(null,"請輸入您要設置的密碼:"));
          335????????????while(true){
          336????????????????pw?=?JOptionPane.showInputDialog(null,"請再次輸入密碼:");
          337????????????????if?(?zh.getPassword().equals(pw)){
          338????????????????????break;
          339????????????????}

          340????????????????else{
          341????????????????????zh.setPassword(JOptionPane.showInputDialog(null,"兩次輸入的密碼不一致,請重新輸入密碼:"));
          342????????????????????continue;
          343????????????????}

          344????????????}

          345????????????zh.setMoney(Integer.parseInt(JOptionPane.showInputDialog(null,"請輸入您的金額:")));
          346????????????PrintWriter?writer?=?new?PrintWriter(new?BufferedWriter(new?FileWriter(zh.getName()+".txt")));//創建文件
          347????????????writer.println(zh.getPassword());
          348????????????writer.println(zh.getMoney());
          349????????????writer.flush()?;
          350????????????JOptionPane.showMessageDialog(null,"帳戶"+zh.getName()+"已經創建成功");
          351????????}
          catch(HeadlessException?e){}catch(IOException?c){}
          352????}

          353????public?void?del(){
          354????????String?name?=?null;
          355????????try{
          356????????????name?=?(JOptionPane.showInputDialog(null,"請輸入您要刪除的帳戶名:"));
          357????????????while(true){
          358????????????????File?fl?=?new?File(name+".txt");
          359????????????????if(fl.exists()){
          360????????????????????fl.delete();
          361????????????????????JOptionPane.showMessageDialog(null,"帳戶"+name+"刪除成功");
          362????????????????????break;
          363????????????????}

          364????????????????else{
          365????????????????????name?=?JOptionPane.showInputDialog(null,"您所輸入的帳戶并不存在,請重新輸入:");
          366????????????????}

          367????????????}
          ????
          368????????}
          catch(HeadlessException?e){}
          369????}

          370????public?void?froze(){
          371????????ZhangHu?zh?=?new?ZhangHu();
          372????????String?name?=?null;????????
          373????????name?=?(JOptionPane.showInputDialog(null,"請輸入您要凍結的帳戶:"));
          374????????try{
          375????????????while(true){
          376????????????????File?fl?=?new?File(name+".txt");
          377????????????????if?(fl.exists()){//如果該帳戶存在,則讀取該帳戶的數據
          378????????????????????BufferedReader?reader?=?new?BufferedReader(new?FileReader(?name?+?".txt"));
          379????????????????????zh.setPassword(reader.readLine());
          380????????????????????zh.setMoney(Integer.parseInt(reader.readLine()));
          381????????????????????File?fr?=?new?File("frozen");
          382????????????????????if(!fr.exists()){
          383????????????????????????fr.mkdir();//創建一個此目錄的文件夾
          384????????????????????}

          385????????????????????File?frfl?=?new?File(fr,name+".txt");
          386????????????????????PrintWriter?writer?=?new?PrintWriter(new?BufferedWriter(new?FileWriter(frfl)));
          387????????????????????writer.println(zh.getPassword());
          388????????????????????writer.println(zh.getMoney());
          389????????????????????writer.flush()?;
          390????????????????????fl.delete();
          391????????????????????JOptionPane.showMessageDialog(null,"帳戶"+name+"凍結成功!");
          392????????????????????break;
          393????????????????}

          394????????????????else{
          395????????????????????name?=?JOptionPane.showInputDialog(null,"您所輸入的帳戶并不存在,請重新輸入:");
          396????????????????}
          ????
          397????????????}

          398????????}
          catch(SecurityException?e){}catch(HeadlessException?e){}catch(IOException?e){}
          399????}

          400}

          401
          402//自定義面扳類
          403class?MyPanel?extends?JPanel
          404{
          405????public?Insets?insets()
          406????{
          407????????return?new?Insets(40,40,40,40);
          408????}

          409}

          410
          411//主類
          412public?class?Bank_Test?{
          413????public?static?void?main(String[]?args){
          414????????Login?lg?=?new?Login();
          415????????lg.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          416????}
          ????
          417}


          歡迎來訪!^.^!
          本BLOG僅用于個人學習交流!
          目的在于記錄個人成長.
          所有文字均屬于個人理解.
          如有錯誤,望多多指教!不勝感激!

          Copyright © 久城

          主站蜘蛛池模板: 商城县| 饶阳县| 明星| 阜康市| 麦盖提县| 滨海县| 连州市| 陆河县| 洪湖市| 大渡口区| 曲阳县| 怀仁县| 柏乡县| 黄大仙区| 靖西县| 东丽区| 治县。| 治多县| 灵璧县| 垫江县| 平乡县| 北安市| 双峰县| 屯门区| 利辛县| 万年县| 泸州市| 永昌县| 五常市| 铁力市| 子洲县| 肃北| 邢台市| 旬邑县| 玛曲县| 永登县| 天门市| 若尔盖县| 望城县| 新乐市| 金昌市|