资源描述
学院计算机科学与技术系课程设计报告20122013学年第二学期课程 JAVA语言课程设计名称 自动取款机模拟程序学生姓名学号专业班级指导教师2013年2月自动取款机模拟程序课程设计过程概述这次课程设计的主要目的是结合面向对象程序设计课程,培养我们面向对象 软件开发的思维,初步了解软件开发的一般流程,提高用 JAVA编程的实际动手 能力并增强大家对面向对象的了解。 这次课程设计的主要内容是独立用 JAVA语 言开发一个小的应用程序 名称:自动取款机模拟程序内容:在PC机上设计一个自动取款机的模拟程序,实现现实中取款机的大部分 功能。二、任务和要求1 .程序分为两部分:管理端和客户端。2 .管理端负责管理所有的银行卡,管理员可以增加和删除银行卡。(1)每张银行卡由卡号唯一标识,卡号由 9位阿拉伯数字组成;(2)新增的银行卡密码均为“ 123456,卡内金额均为0元;(3)只有管理员增加的银行卡才能登陆客户端;(4)删除后的银行卡将不能再登陆客户端。3.客户端负责常见的取款机操作。(1)客户端需要登陆,用户输入正确的银行卡号和密码,系统核对无 误后才能进行操作;(2)登陆后,用户可以进行查询余额、取款、存款和修改密码的操作; (3)修改密码时,用户需输入两次新密码,确定无误后方可更改;(4)取款和存款操作,有操作结果提示,如“操作成功”或“余额不 足,操作失败”等。三、数据库设计程序中包括用户客户端和管理客户端,所以在数据库中需要设计用户信息表 和管理员信息表分别来保存用户信息和管理员信息。表1用户信息表(userse )列名数据类型及长度是否为空主键说明FIDvarcharNO主键用户帐号FNamevarcharNO用户名FPswvarcharNO用户密码FMonvarcharNO钱数目表2管理员信息表(gl )列名数据类型及长度是否为空主键说明FIDvarcharNO主键管理员帐号FPswvarcharNO管理员密码四、系统设计1、总体设计我所设计的ATM机主要是由登录页面模块还由选择服务模块组成,在登录 时可选择用户登录或管理员登陆。其中用户的选择服务模块由取款模块、存款模 块、查询余额模块、修改密码模块、转账模块、退卡模块组成,管理员的选择服 务模块由开户模块、销户模块、修改个人密码模块退出模块组成。 其功能结构图 如下所示:ATM取款机系统登入模块事物模块退出模块输入账号输 入 密 码用户模块结构图2、ATM巨员机界面设计我觉得一个系统的界面应该要简单明了,当然样式美观就更好了。我设计的界面主要是由窗体组成,操作简单。而每一个窗口则执行相应的功能。一个系统界面的好坏直接影响到用户的操作,界面设计要求样式美观、简单明了、方便易操作。我设计的界面主要分为窗体、菜单、按钮和文本输入框几个 部分,分别执行相应的操作。(1)窗体的设计窗体整个本1架使用JFrame类构造,JFrame有自己的外边框和自己的标题, 创建JFrame时可以指定其窗口标题,我创建的窗口标题是各个不同功能的模块 的名字,比如说查询余额窗口,取款窗口等。(2)窗体的主要结构的设计我所设计的窗口的主要结构的特点就是每个窗口都对应着一个特定的功能。 比如说报各种各样的错,还有各种查询余额、取款、选择服务等,所以它们都是 由各种按钮和文本框,标签组成的,而联系各个窗体成为一个整体的就是各个按 钮的监听事件,另外所有窗口布局均为网格布局。为了定义各个按钮所对应的命令和操作,首先需要将各个按钮注册给实现了 动作事件的监听接口 ActionListener的监听者,然后为监听者定义 actionPerformed(ActionEvent e)方法,在这个方法中调用 e.getSource()或 e.getActionCommand()来判断用户点击的菜单子项,并完成这个菜单子项定义的 操作。3、各功能模块设计3.1 登录页面模块设计用户进入登录页面后要输入账号和密码,点击确定后系统会通过连接数据库 验证密码是否正确,在密码正确的情况下界面跳转到功能选择界面,否则弹出警告密码错误窗口。我定义了文本框累的对象FI,FPs。主要是用于输入单行的文本;文本区调用 public String getText()方法,获取用户想要的字符串。因为要区分登录者是用户还是管理员,所以设置了两个JRadioButton来确定登录者的身份。当登录者选择的 身份为用户时通过Alogin()类驱动加载数据库,从用户表中获取相关信息并与用户输入信息比较,信息相符时登录成功,否则弹出警告窗口。部分源码如下;if ( gl .isSelected() DatabaseOperate myLogin = new DatabaseOperate();/连接数据库及相关操作 s = myLogin.Alogin(FI .getText().trim();if( FI .getText().trim().equals(s0.trim()&(FPs .getText().trim().equals(s1.trim() JOptionPane. showMessageDialog ( null , 您好 ,Administrator Welcome!); dispose(); / 关闭登录窗口 new AdminFrame(); /调出管理员操作窗口 else JOptionPane. showMessageDialog (null ,用户名或密码错 误,请重新登录!,警告,JOptionPane. ERROR_MESSAGE); 当登录者选择身份为管理员时身份验证源码如下:else if ( us .isSelected()DatabaseOperate myLogin =new DatabaseOperate。;s = myLogin.login(FI .getText().trim();if( FI .getText().trim().equals(FPs .getText().trim().equals(s1.trim() JOptionPane.showMessageDialog(null登录成功!);dispose(); / 关闭登录窗口new MainFrame(); / 调出主操作窗口 else JOptionPane. showMessageDialog (null 误,请重新登录!,警告,JOptionPane. ERROR_MESSAGE);s0.trim()&,欢迎普通用户,,用户名或密码错登录窗口欢迎进入ATM系统!哪 号: |111222333密鹃: 11H 222333通用户。管理员登录 退出图i登录窗口3.2 选择服务模块设计在选择服务模块中,有各种 ATM的服务功能,只要用户在该界面中选择按钮,它就会弹出各个相应的界面。每一个按钮都有监听器,在选择了按钮后,java.awt.event中的ActionEvent类创建一个事件对象,并将它传递给方法public void actionPerformed(ActionEvent e)中的参数e,监视器就会知道所发生的事件,对此事件进行处理。其中的部分源代码为:public void actionPerformed(ActionEvent e) if(e.getSource() =dispose(); new DepositFrame();else if (e.getSource()= dispose();new GetFrame();else if (e.getSource()=depositget ) transfer ) dispose();change ) new TransferFrame(); else if (e.getSource()= dispose();new Change(); else if (e.getSource() =search ) DatabaseOperate mySearch =new DatabaseOperate();String t =new String2;t = mySearch.schbalance(BankSystem.s0.trim();FMo.setText(t1); else if (e.getSource() =exit ) dispose。;JOptionPane. showMessageDialog (null ,请取回您的磁卡!力 dispose。; 图2主操作窗口3.3 取款模块设计在取款模块有两个取款窗口,取款窗口1和取款窗口 2。在取款窗口 1中用户可以直接点击固定金额对应的按钮进行取款,当然了取款的时候也不能超过卡里的余额,否则就会弹出报错的窗口。取款窗口1部分源代码如下:DatabaseOperate myGet =new DatabaseOperate();String t =new String2;if (e.getSource() =money1 ) Integer moneyi=100;String money=moneyi.toString();t = myGet.schbalance(BankSystem.s 0.trim();if (100 = Double. parseDouble (t1.trim() myGet.get(money, BankSystem.s0.trim();JOptionPane. showMessageDialog ( null ,成功取款 100 元!工 dispose。; new MainFrame(); else JOptionPane. showMessageDialog ( null ,取款失败,您金额不足!,警告, JOptionPane. ERROR_MESSAGE;图3取款窗口 1当用户想要取款金额不存在对应的按钮时,用户可以点击其他面值按钮,然 后系统将会关闭当前窗口弹出取款窗口 2,在该窗口用户可以再文本框里输入任 意整百的金额进行取款操作。部分源代码如下:DatabaseOperate myGet =new DatabaseOperate();String t =new String2;if (e.getSource() =ok ) int money;String myText; myText= moneyField .getText(); money=Integer. parseInt (myText);if (money % 100 =0) t = myGet.schbalance(BankSystem.s0.trim();if (Double. parseDouble (moneyField .getText()=Double. parseDouble (t1.trim() myGet.get( moneyField .getText().trim(), BankSystem. s0.trim();JOptionPane. showMessageDialog (null ,取款成功!力 dispose。;new MainFrame(); elseJOptionPane. showMessageDialog ( null ,取款失败,您 金额不足!,警告JOptionPane. ERROR_MESSAGE; else JOptionPane. showMessageDialog (null ,请重新输入,请输入 整百的数!,警告JOptionPane. ERROR_MESSAGE);moneyField .setText( null ); 鱼 取款窗匚2匚互|叵匚瓦1欢迎使用ATM取款业务!提示二输入的取款必须为整百的数!请输入取款金题工确定 返回图4取款窗口 23.4 存款模块设计在存款模块中,用e.getSource(方法获取用户在文本框中输入的金额,然后 调用DatabaseOperate() 类的deposit(String,String)方法来更新数据库里的相关信息。deposit(String,String)方法的源代码如下:public String口 deposit(String money, String num) DatabaseConn DB = new DatabaseConn();this . FMon = money; this . FID = num;String t =new String2;parseDouble (t1.trim()t = schbalance( FID );double temp = Double.sql+ Double. parseDoubleupdate userse set FMon =(FMon);try+ where FID =+ Integer.+ tempparseInt (t0.trim()+DB.OpenConn(); DB.executeUpdate( sql ); catch (Exception e) System. out .println(e);JOptionPane. showMessageDialog finally DB.closeStmt(); DB.closeConn(); return t;(null ,存款失败!);备存款窗口欢迎使用ATM存款业务!提示:输入的存款必须为整百的数!请输入存款金甑;300图5存款窗口3.5修改密码模块设计在修改密码模块中,首先你必须要输入你的旧密码是否正确,否则就会报错。再一个就是要两次输入你的新密码, 且两次要匹配,否则也会报错,然后再重新回到修改密码的界面。在修改密码时用到的方法为:DatabaseOperate myChan = new DatabaseOperate();if (e.getSource()= ok )/单击确定按钮后,判断两次输入的新密码是否一致if ( FPs1 .getText().trim().equals(FPs2 .getText().trim()myChan.change( FPs1 .getText().trim(), BankSystem.s0.trim();JOptionPane. showMessageDialog (null ,密码修改成功!工 dispose。; new MainFrame(); else JOptionPane. showMessageDialog ( null , 您再次 输入的 密码不 致,请重新输入! !); 备用户修改密码窗口欢迎进入用户修改密码界面!请输入原密第:111222333语输入新密码:12345/89语输入新密鹃:1 23456789图6用户修改密码窗口3.6转账模块设计在该模块中用两个文本框分别获取转账对方的账号和转账金额,通过Catch()方法连接数据库检索 对方账号是否存在,在对方账号存在的情况下在调用 schbalance()方法查看本人账户金额是否充足,若充足则调用get() 和deposit。方法分别对本人账户进行取款操作对对方账户进行取款操作。部分代码如下:if (Double. parseDouble ( moneyField .getText().trim()=Double. parseDouble (t1.trim()myTransfer.get( moneyField .getText().trim(), BankSystem. s0.trim();/ 本人相当于取钱myTransfer.deposit(moneyField .getText().trim(),FI .getText().trim();/ 对方相当于存钱JOptionPane. showMessageDialog (null ,转账成功!力 dispose。; new MainFrame(); else JOptionPane. showMessageDialog ( null ,转账 失败,您卡上余额不足! ,警告JOptionPane. ERROR_MESSAGE;为 巷账窗口亘I叵I欢迎使用ATM转账业务!提示:输入的转账金额必须为整百的数!话输入对方的唯母:请输入转账的金醐:确定 返回图7转账窗口3.7 查询余额模块设计查询余额功能是在主操作窗口中实现的,当用户点击查询余额按钮时在下面的文本框中显示出该账号的当前余额。备主掾作窗口 = 恒O(n_n )。欢迎使用银行管理系统。(门_ n )。转赚退出您当前可用余颤为;1000.0元!图8查询余额窗口3.8 管理员操作模块设计管理员登录后可以进行的操作有开户、销户、修改个人密码。在开户操作 时要先检查新的账户是否已经存在,销户时可以先查询被销账户中的余额。,备管理员窗口|三,回| S3 |欢迎进入管理员界面!Ip图9管理员操作窗口开户部分代码如下:info 0 =FID .getText().trim();info 1 =FName.getText().trim();DatabaseOperate mycatch =new DatabaseOperate();a = mycatch.Catch( FID .getText().trim();if ( a= false ) DatabaseOperate insertTable =Stringsqluserseuserse(FID,FName,FPsw ,FMon)+values。+info 0+ , +infonew DatabaseOperate。;insertinto1+ , +123456+ ,+ 0 +);insertTable.Insert(sqluserse);JOptionPane. showMessageDialogdispose。;(null ,客户信息已添加!);new AdminFrame(); else JOptionPane. 入!,警告,JOptionPane.FID .setText(FName.setText(showMessageDialogERROR_MESSAGE; null ); null );(null ,此帐号已存在,请重新输图10开户窗口销户部分代码如下:if (e.getSource() =logoff ) / 将找到的相关信息,删除String deluserse =delete from userse where FID =+ Integer. parseInt ( FID .getText().trim() + myLogoff.Insert(deluserse);JOptionPane. showMessageDialog (null ,客户所有信息已删除 !); dispose。; new AdminFrame(); else if (e.getSource() =search ) DatabaseOperate mySearch =new DatabaseOperate();String t =new String2;t = mySearch.schbalance(FID .getText().trim();FMo.setText(t1)图11销户窗口备管理员砒骗股窗口叵I区欢迎进入管理员密码修改窗口!请输入原密科:请输入新密鹃;清输入新密鹃;确定 返回图12管理员个人密码修改窗口五、设计中遇到的问题在此次课程设计中,我遇到了一些问题,如:对于面向对象的方法了解不够 透彻,运用到实际的软件开发中存在着困难;对于 Java语言,只学习到了一些 最基本的知识,这导致编写程序时经常出现一些语法错误, 而且要在短时间内用 Java语言来设计一个具体的系统是一个较大的挑战;还有对于正规开发一个系统 的流程不熟悉,适应起来比较慢,编写各个模块相对应的操作时,自己感觉难以 动手,这表明所学的知识不能灵活运用到实际中。 尤其是连接数据库的相关操作 感觉更加困难,在此也花了很长时间。对于以上的问题,自己有清楚的认识,解决办法是需要大量阅读相关的书籍, 对于书上以及网站上下载的资料中的 Java实例必须有清楚的理解,还有就是多 跟精通此方面的老师和同学交流,取其精华。对于实际动手能力与系统开发的流 程的适应,必须多进行实际的练习与操作,才能有大的进步。六、设计体会在这次的课程设计中,主要是运用 JAVA语言来编写一个小的应用程序,当 然还可以用其他的技术来辅助了。在这个小应用程序当中,我用了 Java外还用 了 Swing控件。由于以前学的不是很扎实,而且还有些知识我们都是没有学过的,这就要求我们去查相关的书籍,还有就是和同学之间的交流。正因为这样,才锻 炼了我的自学的能力,还有就是加深了我对各个知识点的认识,并且提高了我对专业的学习的兴趣,为我以后的学习打下了基础。止匕外,我还感受到了面向对象 语言的类库的强大的功能,掌握了运用 JAVA中的类实现某些基本功能,并学会 了自己查询使用类的方法,也就是要会用API文档,为以后更好的学习面向对象语言奠定了基础。七、参考文献1王桂彬、刘家兰,JAVA大学教程M.清华大学出版社20082印昊,JAVA与面向对象程序设计M.高等教育出版社20043李尊朝,JAVA语言程序设计M.中国铁道出版社20044 丁诚.JAVA完全自学手册M.机械工业出版社2010八、源代码登录相关代码 package abc;import java.awt.Color;import java.awt.Container;import java.awt.Font;import java.awt.GridLayout;import java.awt.TextField;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.ButtonGroup;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JRadioButton;import DB.DatabaseOperate;class BankSystem extends JFrame implements ActionListener static String口 s = new String4;private static final long serialVersionUID = 1L;JPanel p1 =newJPanel p2 =newJPanel p3 =newJPanel p4 =newJPanel p5 =newJLabe11abel1 = TextField FI =JLabe11abel2 = TextField FPs =JButton Enter = JButton Exit = ButtonGroup bgp = JRadioButton us = JRadioButton gl =JPanel();JPanel();JPanel();JPanel();JPanel();new JLabel(账new TextField(15);new JLabel(密new TextField(15);new JButton( 登new JButton( 退new ButtonGroup();new JRadioButton( new JRadioButton(号:”);码:);录)出)用 户)管理员);JLabel label = new JLabel(欢迎进入 ATM系统!);public BankSystem() this .setResizable( false );Container contentPane =(获取当前类的窗口 )contentPane.setLayout( setBackground(Color.this .getContentPane();/new GridLayout(5, 1);/ LIGHT_GRAY ); /设置背景色取出内容面板网格布局label.setFont(new Font(Sans Serif, Font.BOLD, 30);p1.add(label);p2.add(label1);p2.add(FI);p3.add(label2);p3.add(FPs);p4.add(us);p4.add(gl);p5.add(Enter);p5.add(Exit);bgp.add(us);bgp.add(gl);contentPane.add(p1); contentPane.add(p2); contentPane.add(p3); contentPane.add(p4); contentPane.add(p5);Enter.addActionListener( Exit.addActionListener( setSize(500, 400);将面板添加到内容面板this );this );setLocation(400, 150);setTitle(登录窗口 );setVisible( true ); public void actionPerformed(ActionEvent e) if (e.getSource() = Enter) /单击确定按钮后 if (gl.isSelected() DatabaseOperate myLogin =new DatabaseOperate();s = myLogin.Alogin(FI.getText().trim(); if(FI.getText().trim().equals(s0.trim()&(FPs.getText().trim().equals(s1.trim() JOptionPane. showMessageDialog (null ,您好,Administrator Welcome-!); dispose。;/关闭登录窗口new AdminFrame(); 调出管理员操作窗口 else JOptionPane. showMessageDialog ( null , 用户名或密码错 误,请重新登录!,警告,JOptionPane.ERROR_MESSAGE); else if (us.isSelected() DatabaseOperate myLogin =new DatabaseOperate();s = myLogin.login(FI.getText().trim(); if(FI.getText().trim().equals(s0.trim()&(FPs.getText().trim().equals(s1.trim() JOptionPane.showMessageDialog( null , 欢迎普通用户,登录成功!); dispose。;/关闭登录窗口new MainFrame(); 调出主操作窗口 else JOptionPane. showMessageDialog ( null , 用户名或密码错 误,请重新登录!,警告,JOptionPane.ERROR_MESSAGE); else if (e.getSource() = Exit) /单击取消 dispose(); System. exit (0); public staticvoid main(String args) new BankSystem();主操作窗口相关代码package abc;import java.awt.Color;import java.awt.Container;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;import DB.DatabaseOperate;class MainFrame extends JFrame implements ActionListener private static final long serialVersionUID = 1L;JPanel p1 = new JPanel();JPanel p2 = new JPanel();JPanel p3 = new JPanel();JPanel p4 = new JPanel();JPanel p5 = new JPanel();JLabel label1 = new JLabel(O( n _n )O欢迎使用银行管理系统 O( n _n )O);JButton deposit = new JButton(JButton get = new JButton(JButton search = new JButton(JButton change = new JButton(JButton transfer = new JButton(JButton exit = new JButton(存款);取款);查询余额);修改密码);转账);退出);JTextField FMo = new JTextField(10);public MainFrame() setBackground(Color.LIGHT_GRAY);/ 设置背景色Container contentPane = this.getContentPane();/ 取出内容面板(获取当前类的窗口 ) contentPane.setLayout(new GridLayout(5, 1);label1.setFont(new Font(Sans Serif, Font.BOLD, 20);/设置字体pl.add(labell);p2.add(deposit);存款p2.add(get);/ 取款p3.add(search);/将组件添加到中间容器p3.add(change);p4.add(transfer);转账p4.add(exit); 将组件添加到中间容器(取回磁条)p5.add(new JLabel(您当前可用余额为:);p5.add(FMo);p5.add(new JLabel(元!!);search.addActionListener(this);change.addActionListener(this);deposit.addActionListener(this);get.addActionListener(this);transfer.addActionListener(this);exit.addActionListener(this);contentPane.add(pl); /将面板添加到内容面板contentPane.add(p2);contentPane.add(p3);contentPane.add(p4);contentPane.add(p5);setSize(500, 400);setLocation(400, 150);setTitle(主操作窗口 ); setVisible(true);public void actionPerformed(ActionEvent e) if (e.getSource() = deposit) dispose。;new DepositFrame(); else if (e.getSource() = get) dispose。;new GetFrame(); else if (e.getSource() = transfer) dispose。;new TransferFrame(); else if (e.getSource() = change) dispose();new Change();else if (e.getSource() = search) DatabaseOperate mySearch = new DatabaseOperate();String t = new String2;t = mySearch.schbalance(BankSystem.s0.trim();FMo.setText(t1);else if (e.getSource() = exit) dispose。;/new BankSystem();JOptionPane.showMessageDialog(null,请取回您的磁卡!); dispose。;public static void main(String口 args) new BankSystem();取款窗口1相关代码package abc;import java.awt.Color;import java.awt.Container;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import DB.DatabaseOperate;class GetFrame extends JFrame implements ActionListener private static final long serialVersionUID = 1L;JPanel p1 = new JPanel();JPanel p2 = new JPanel();JPanel p3 = new JPanel();JPanel p4 = new JPanel();JLabel label1 = new JLabel(欢迎使用 ATM 取款业务!JButton money1 :=new JButton(100);JButton money2 :=new JButton(200);JButton money3 :=new JButton(500);JButton money4 :=new JButton(1000);JButton other =new JButton(其他面值););JButton cancel = new JButton( 返 回public GetFrame() setBackground(Color.LIGHT_GRAY);设置背景色Container contentPane = this.getContentPane();/ 取出内容面板 contentPane.setLayout(new GridLayout(4 ,1);label1.setFont(new Font(DialogInput, Font.BOLD, 30);p1.add(label1);p2.add(money1);p2.add(money2);p3.add(money3);p3.add(money4);p4.add(other);p4.add(cancel);/将组件添加到中间容器money1.addActionListener(this);money2.addActionListener(this);money3.addActionListener(this);money4.addActionListener(this);other.addActionListener(this);cancel.addActionListener(this);contentPane.add(p1);contentPane.add(p2);/将面板添加到内容面板contentPane.add(p3);contentPane.add(p4);setSize(500, 400);setLocation(400, 150);setTitle(取款窗口 1); setVisible(true);public void actionPerformed(ActionEvent e) DatabaseOperate myGet = new DatabaseOperate();String t = new String2;if (e.getSource() = money1) Integer moneyi=100;String money=moneyi.toString();t = myGet.schbalance(BankSystem.s0.trim();if (100 = Double.parseDouble(t1.trim() myGet.get(money, BankSystem.s0.trim();JOptionPane.showMessageDialog(null,成功取款 100元!力 dispose。; new MainFrame(); elseJOptionPane.showMessageDialog(null,”取款失败,您金额不足!,警告, JOptionPane.ERROR_MESSAGE);else if (e.getSource() = money2) Integer moneyi=200;String money=moneyi.toString();t = myGet.schbalance(BankSystem.s0.trim();if (200 = Double.parseDouble(t1.trim() myGet.get(money, BankSystem.s0.trim();JOptionPane.showMessageDialog(null,成功取款 200元!工 dispose。; new MainFrame(); elseJOptionPane.showMessageDialog(null, ”取款失败,您金额不足!,警告, JOptionPane.ERROR_MESSAGE);else if (e.getSource() = money3) Integer moneyi=500;String money=moneyi.toString();t = myGet.schbalance(BankSystem.s0.trim();if (500 = Double.parseDouble(t1.trim() myGet.get(money, BankSystem.s0.trim();JOptionPane.showMessageDialog(null,成功取款 500元!力 dispose。; new MainFrame(); elseJOptionPane.showMessageDialog(null, ”取款失败,您金额不足!,警告, JOptionPane.ERROR_MESSAGE);else if (e.getSource() = money4) Integer moneyi=1000;String money=moneyi.toString();t = myGet.schbalance(BankSystem.s0.trim();if (1000 = Double.parseDouble(t1.trim() myGet.get(money, BankSystem.s0.trim();JOptionPane.showMessageDialog(null,成功取款 1000元!力 dispose。; new MainFrame(); elseJOptionPane.showMessageDialog(null,取款失败,您金 额不足!,警告,JOptionPane.ERROR_MESSAGE);else if (e.getSource() = other) dispose。;new GetFrame2();else if (e.getSource() = cancel) dispose。;new MainFrame();public static void main(String口 args)new BankSystem();取款窗口2相关代码package abc;import java.awt.Color;import java.awt.Container;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;import DB.DatabaseOperate;class GetFrame2 extends JFrame implements ActionListener private static final long serialVersionUID = 1L;JPanel p1 = new JPanel();JPanel p2 = new JPanel();JPanel p3 = new JPanel();JPanel p4 = new JPanel();JLabel label1 = new JLabel(欢迎使用 ATM 取款业务!”);JLabel label2 = new JLabel(提示:输入的取款必须为整百的数!);JLabe11abel3 = new JLabel(请输入取款金额:);JTextField moneyFiel
展开阅读全文