JAVA小项目-银行管理系统(图形化界面)7-改密与转账

老规矩上图
这里写图片描述

其实到这只剩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("");  
    }


}

JAVA小项目-银行管理系统(图形化界面)7-改密与转账_第1张图片

下面就是转账操作

转账操作的整体流程是

重点内容输入对方账号和金额, 然后跳转到确认界面,让用户确认对方信息,然后在进行转账操作

转账操作分为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();
        }

    }


}

JAVA小项目-银行管理系统(图形化界面)7-改密与转账_第2张图片

JAVA小项目-银行管理系统(图形化界面)7-改密与转账_第3张图片

下面是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小项目-银行管理系统(图形化界面)7-改密与转账_第4张图片

JAVA小项目-银行管理系统(图形化界面)7-改密与转账_第5张图片

项目所有代码 到这就完成了 , 有些功能写的不好,还希望提出你们建议
如果有想看 其他篇目 或者完整代码的 下面是链接

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)