JAVA小项目-银行管理系统(图形化界面)7-改密与转账
2018-01-02 19:40
399 查看
老规矩上图
其实到这只剩2个功能了
改密和转账
改密操作 和前面的存钱取钱啊, 都一样啊 只是更改的内容变了。
这个就不多说了 ,直接上代码
重要的是, 转账操作
一个是Transfer 负责界面的书写 包括输入对方账户, 和转账金额 (当然在此有验证对方账户是否存在的功能)
另外一个是TransferToOthers 是我们确认对方信息 ,我们从文件读出 对方信息(核心用*注释), 然后确定才进行转账操作
下面是TransferToOthers 确认对方信息 并在此之上加入了 弹框提示余额的功能
在确认对方信息时 包含以下方面
1. 对方姓名
2. 身份证号
3. 对方账号
确认 是同意转账, 否则 退出
代码:
项目所有代码 到这就完成了 , 有些功能写的不好,还希望提出你们建议
如果有想看 其他篇目 或者完整代码的 下面是链接
JAVA小项目-银行管理系统(图形化界面)1-菜单
http://blog.csdn.net/changjiale110/article/details/78880024
JAVA小项目-银行管理系统(图形化界面)2-开户与挂失
http://blog.csdn.net/changjiale110/article/details/78896168
JAVA小项目-银行管理系统(图形化界面)3-登录与查询
http://blog.csdn.net/changjiale110/article/details/78916391
JAVA小项目-银行管理系统(图形化界面)4-验证
http://blog.csdn.net/changjiale110/article/details/78916497
JAVA小项目-银行管理系统(图形化界面)5-用户信息读写
http://blog.csdn.net/changjiale110/article/details/78926473
JAVA小项目-银行管理系统(图形化界面)6-存款与取款
http://blog.csdn.net/changjiale110/article/details/78926600
JAVA小项目-银行管理系统(图形化界面)7-改密与转账
http://blog.csdn.net/changjiale110/article/details/78955018
整体项目演示+源码包
http://blog.csdn.net/changjiale110/article/details/78955353
其实到这只剩2个功能了
改密和转账
改密操作 和前面的存钱取钱啊, 都一样啊 只是更改的内容变了。
这个就不多说了 ,直接上代码
重要的是, 转账操作
package contentcl; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.IOException; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JTextField; /** * 实现改密操作 * @author contentcl * @Date 2017年12月27日 上午9:53:18 * */ public class Modify extends JFrame implements ActionListener{ JButton jb1, jb2, jb3; //按钮 JPanel jp1,jp2,jp3, jp4; //面板 JPasswordField jtf1,jtf2; //文本框 JLabel jlb1, jlb2, jlb3; //标签 String name = "123"; //账号密码 String pwd = "123"; String countname; public Modify(String countname) { this.countname = countname; // TODO Auto-generated constructor stub jb1 = new JButton("确定"); jb2 = new JButton("重置"); //设置按钮监听 jb1.addActionListener(this); jb2.addActionListener(this); jp1 = new JPanel(); //创建面板 jp2 = new JPanel(); jp3 = new JPanel(); jlb1 = new JLabel(" 新密码"); //添加标签 jlb2 = new JLabel("重复密码"); jtf1 = new JPasswordField(10); //创建文本框 jtf2 = new JPasswordField(10); //加入面板中 jp1.add(jlb1); jp1.add(jtf1); jp2.add(jlb2); jp2.add(jtf2); jp3.add(jb1); jp3.add(jb2); //将JPane加入JFrame中 this.add(jp1); this.add(jp2); this.add(jp3); //设置布局 this.setTitle("用户登录"); this.setLayout(new GridLayout(3,1)); //利用网格布局 this.setSize(300, 200); //设置窗体大小 this.setLocationRelativeTo(null);//在屏幕中间显示(居中显示) this.setDefaultCloseOperation(DISPOSE_ON_CLOSE); //设置仅关闭当前窗口 this.setVisible(true); //设置可见 this.setResizable(false); //设置不可拉伸大小 } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub if (e.getActionCommand()=="确定") { try { modify(); //进行信息核对 } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } else if (e.getActionCommand()=="重置") { clear(); //清楚信息 } } private void modify() throws IOException { // TODO Auto-generated method stub if (jtf1.getText().isEmpty()||jtf2.getText().isEmpty()) //判断信息是否为空 { JOptionPane.showMessageDialog(null, "信息未填写完成!","消息提示",JOptionPane.WARNING_MESSAGE); } else if (jtf1.getText().equals(jtf2.getText())) { new UserMessage().updatepwd(countname, jtf1.getText()); //调用UserMessage的updatepwd函数更新密码 JOptionPane.showMessageDialog(null, "修改成功!","消息提示",JOptionPane.WARNING_MESSAGE); dispose(); } else { JOptionPane.showMessageDialog(null, "2次密码不一致,请重新输入!","消息提示",JOptionPane.WARNING_MESSAGE); clear(); } } //清空密码框 private void clear() { // TODO Auto-generated method stub jtf1.setText(""); //设置为空 jtf2.setText(""); } }
下面就是转账操作
转账操作的整体流程是重点内容输入对方账号和金额, 然后跳转到确认界面,让用户确认对方信息,然后在进行转账操作
转账操作分为2个类一个是Transfer 负责界面的书写 包括输入对方账户, 和转账金额 (当然在此有验证对方账户是否存在的功能)
另外一个是TransferToOthers 是我们确认对方信息 ,我们从文件读出 对方信息(核心用*注释), 然后确定才进行转账操作
其实Transfer类TransferToOthers类和在编写时 最初的思路 是想 当我们在TransferToOthers上确认或取消信息时 我们 返回给Transfer 一个true或false 然后在Transfer上 显示余额 , 但在用事件监听按钮是发现 getActionCommand()这个方法 只返回字符串 , 也就意味着 点不点按钮和 是否往后进行是不矛盾的
所以想法就终止了 因此我将Transfer显示结果的框却去掉了,并在TransferToOthers类中加入弹框提示余额, 也希望有其他思路的同学提出,在此感谢
先给出 Transfer, 判断用户是否存在和金额是否合法package contentcl; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.IOException; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.JTextField; /** * 本类实现对转账的操作, 注意金额的处理 * @author contentcl * @Date 2017年12月25日 下午8:00:05 * */ public class Transfer extends JFrame implements ActionListener{ String countname; JButton jb1, jb2, jb3; //按钮 JLabel jlb1, jlb2, jlb3; //标签 JTextArea jta1,jta2; //文本框 JTextField jtf1; JPanel jp1; public static boolean flag=true; public Transfer(String countname) { this.countname = countname; // TODO Auto-generated constructor stub jb1 = new JButton("确定"); jb2 = new JButton("重置"); //设置按钮监听 jb1.addActionListener(this); jb2.addActionListener(this); jlb1 = new JLabel("请输入存入金额:"); //添加标签 jlb2 = new JLabel("对方账号"); //创建文本框 jta1 = new JTextArea(); //转出金额 jtf1 = new JTextField(13); //对方账户加入面板 jp1 = new JPanel(); jp1.add(jlb2); jp1.add(jtf1); //设置布局 this.setTitle("转账"); this.setLayout(null); this.setSize(300, 300); //创建对方账户的标签 jp1.setBounds(20, 20, 210, 60); //存入标签和文本框 jlb1.setBounds(20, 80, 200, 20); jta1.setBounds(20, 110, 250, 50); jta1.setFont(new java.awt.Font("Dialog", 0, 15)); //确定和重置按钮 jb1.setBounds(60, 180, 62, 28); jb2.setBounds(160, 180, 62, 28); this.add(jp1); this.add(jlb1); this.add(jta1); this.add(jb1); this.add(jb2); this.setLocationRelativeTo(null);//在屏幕中间显示(居中显示) this.setDefaultCloseOperation(DISPOSE_ON_CLOSE); //设置仅关闭当前窗口 this.setVisible(true); //设置可见 this.setResizable(false); //设置不可拉伸大小 } //清空账号和密码框 private void clear() { // TODO Auto-generated method stub jtf1.setText(""); jta1.setText(""); //设置为空 jta2.setText(""); } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub if (e.getActionCommand()=="确定") { try { transfer(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } else if (e.getActionCommand()=="重置") { clear(); } } private void transfer() throws IOException { // TODO Auto-generated method stub if (jta1.getText().isEmpty()) { JOptionPane.showMessageDialog(null, "金额为空,请重新输入!","消息提示",JOptionPane.WARNING_MESSAGE); } else if (jtf1.getText().isEmpty()) { JOptionPane.showMessageDialog(null, "转入账号,请重新输入!","消息提示",JOptionPane.WARNING_MESSAGE); } else if(new Check().checkmoney(jta1.getText())) //验证金额是否合法 { if(new Check().check2(jtf1.getText())) //验证账户是否存在 { new TransferToOthers(countname,jtf1.getText(),jta1.getText()); //将本人账户名 对方账户名和金额传递过去 clear(); } else { JOptionPane.showMessageDialog(null, "账户不存在","消息提示",JOptionPane.WARNING_MESSAGE); clear(); } } else { JOptionPane.showMessageDialog(null, "金额不合法","消息提示",JOptionPane.WARNING_MESSAGE); clear(); } } }
下面是TransferToOthers 确认对方信息 并在此之上加入了 弹框提示余额的功能
在确认对方信息时 包含以下方面
1. 对方姓名
2. 身份证号
3. 对方账号
确认 是同意转账, 否则 退出
代码:
package contentcl; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.IOException; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JTextField; public class TransferToOthers extends JFrame implements ActionListener{ JButton jb1, jb2, jb3; //按钮 JLabel jlb1, jlb2, jlb3,jlb4; //标签 JTextField jtf1,jtf2,jtf3; //文本框 JPasswordField jpf; //密码框 JPanel jp1,jp2,jp3,jp4; //面板 String wantsave,countname,mycountname; //private boolean flag; public TransferToOthers(String mycountname, String countname, String wantsave) throws IOException { // TODO Auto-generated constructor stub this.wantsave = wantsave; this.countname = countname; this.mycountname = mycountname; jb1 = new JButton("确定"); jb2 = new JButton("取消"); //设置按钮监听 jb1.addActionListener(this); jb2.addActionListener(this); //标签信息 jlb1 = new JLabel("对方姓名"); jlb2 = new JLabel("身份证号"); jlb3 = new JLabel(" 账号"); jlb4 = new JLabel("请确认对方账户信息"); jlb4.setFont(new java.awt.Font("Dialog", 1, 15)); jtf1 = new JTextField(13); jtf2 = new JTextField(13); jtf3 = new JTextField(13); jp1 = new JPanel(); jp2 = new JPanel(); jp3 = new JPanel(); jp4 = new JPanel(); jp1.add(jlb1); jp1.add(jtf1); jp2.add(jlb2); jp2.add(jtf2); jp3.add(jlb3); jp3.add(jtf3); jp4.add(jb1); jp4.add(jb2); //设置布局 this.setTitle("确认信息"); this.setLayout(null); jlb4.setBounds(65, 20, 300 ,50); jp1.setBounds(-10, 80, 300 ,50); jp2.setBounds(-10, 150, 300 ,50); jp3.setBounds(-10, 220, 300 ,50); jp4.setBounds(-10, 290, 300 ,50); //将JPane加入JFrame中 this.add(jp1); this.add(jp2); this.add(jp3); this.add(jp4); this.add(jlb4); this.setSize(300, 400); //设置窗体大小 this.setLocationRelativeTo(null);//在屏幕中间显示(居中显示) this.setDefaultCloseOperation(DISPOSE_ON_CLOSE); //设置仅关闭当前窗口 this.setVisible(true); //设置可见 this.setResizable(false); //设置不可拉伸大小 String []message = new UserMessage().read(countname); //将姓名的第一个字变为* message[0] ="*"+message[0].substring(1,message[0].length()); //将身份证号第6到12位变成* message[1] =message[1].substring(0,6)+"*******"+message[1].substring(13,message[1].length()); jtf1.setText(message[0]); jtf2.setText(message[1]); jtf3.setText(countname); } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub if (e.getActionCommand()=="确定") { String nowmoney=""; try { nowmoney = new UserMessage().updatemoney(mycountname,-Integer.parseInt(wantsave)); } catch (NumberFormatException e2) { e2.printStackTrace(); } catch (IOException e2) { e2.printStackTrace(); } if (!nowmoney.equals("负数")) { //jta2.setText("您的余额为:\n "+nowmoney); //jta1.setText(""); //对方账户存钱 try { nowmoney = new UserMessage().updatemoney(countname,Integer.parseInt(wantsave)); } catch (NumberFormatException e1) { e1.printStackTrace(); } catch (IOException e1) { e1.printStackTrace(); } if (!nowmoney.equals("负数")) { JOptionPane.showMessageDialog(null, "存入成功,您的余额为:"+nowmoney,"消息提示",JOptionPane.PLAIN_MESSAGE); dispose(); } } else { JOptionPane.showMessageDialog(null, "余额不足请重新输入:","消息提示",JOptionPane.WARNING_MESSAGE); dispose(); } } else if (e.getActionCommand()=="取消") { dispose(); } } }
项目所有代码 到这就完成了 , 有些功能写的不好,还希望提出你们建议
如果有想看 其他篇目 或者完整代码的 下面是链接
JAVA小项目-银行管理系统(图形化界面)1-菜单
http://blog.csdn.net/changjiale110/article/details/78880024
JAVA小项目-银行管理系统(图形化界面)2-开户与挂失
http://blog.csdn.net/changjiale110/article/details/78896168
JAVA小项目-银行管理系统(图形化界面)3-登录与查询
http://blog.csdn.net/changjiale110/article/details/78916391
JAVA小项目-银行管理系统(图形化界面)4-验证
http://blog.csdn.net/changjiale110/article/details/78916497
JAVA小项目-银行管理系统(图形化界面)5-用户信息读写
http://blog.csdn.net/changjiale110/article/details/78926473
JAVA小项目-银行管理系统(图形化界面)6-存款与取款
http://blog.csdn.net/changjiale110/article/details/78926600
JAVA小项目-银行管理系统(图形化界面)7-改密与转账
http://blog.csdn.net/changjiale110/article/details/78955018
整体项目演示+源码包
http://blog.csdn.net/changjiale110/article/details/78955353
相关文章推荐
- JAVA小项目-银行管理系统(图形化界面)5-用户信息读写
- JAVA小项目-银行管理系统(图形化界面)6-存款与取款
- JAVA小项目-银行管理系统(图形化界面)4-验证
- JAVA小项目-银行管理系统(图形化界面)1-菜单
- JAVA小项目-银行管理系统(图形化界面)3-登录与查询
- JAVA小项目-银行管理系统(图形化界面)2-开户与挂失
- JAVA小项目--银行管理系统
- JAVA小项目-银行管理系统(图形界面&&文件读写+源文件)
- 黑马程序员__JAVA项目分析__交通灯管理系统
- java张孝祥(7) 银行管理系统
- 黑马程序员——java面试中常遇到的面试项目——交通灯系统管理项目
- Java基础(十六)——项目实战——交通灯管理系统
- 2周修改了1000多个Bug后软件项目扭转了局面,未交付银行的现金管理系统健壮起来了
- Java图书管理系统-项目编写
- IT人必备:实用项目管理系列订餐系统实例化教学(Java版,10年IT经验总结,涉及测试
- 软件项目管理系统(RPMS)界面设计列表
- java交通灯管理系统项目
- java银行管理系统前三题
- 系统管理:RHEL6.3字符界面图形化界面切换
- 黑马程序员--JAVA交通灯管理系统项目